***:济南旅游团购网—后台
4.3程序代码编写
本系统较有特色的部分就是旅游资讯信息窗口和管理登录窗口,其中根据字段的长度来改变网页中单个表格的长度能使界面更和谐。
(1)数据库连接 public class DBO { private Connection conn; private Statement stmt; private DataSource ds; public DBO() {}
/**打开数据库*/ public void open()
{try {Class.forName(\ conn
=jsplywz\
stmt=conn.createStatement();
System.out.println(\打开数据库连接\ catch (Exception ex)
{System.err.println(\打开数据库时出错: \} }
/*关闭数据库,将连接返还给连接池*/ public void close() {try
{//connMgr.freeConnection(\conn.close();
System.out.println (\释放连接\} catch (SQLException ex)
{System.err.println(\返还连接池出错: \}}
/*执行查询*/
public ResultSet executeQuery(String sql) throws SQLException {ResultSet rs = null;
24
=
DriverManager.getConnection(\
rs = stmt.executeQuery(sql); System.out.println (\执行查询\return rs; }/**执行增删改*/
public int executeUpdate(String sql) throws SQLException {int ret = 0;
ret = stmt.executeUpdate(sql); System.out.println (\执行增删改\return ret;}
/**将SQL语句加入到批处理*/
public void addBatch(String sql) throws SQLException {stmt.addBatch(sql); }
/**执行批处理*/
public int [] executeBatch() throws SQLException {boolean isAuto=conn.getAutoCommit(); conn.setAutoCommit(false);
int [] updateCounts = stmt.executeBatch(); //conn.commit();
//conn.setAutoCommit(isAuto); //conn.setAutoCommit(true); return updateCounts; }
public boolean getAutoCommit() throws SQLException { return conn.getAutoCommit();
}public void setAutoCommit(boolean auto) throws SQLException {conn.setAutoCommit(auto);
}public void commit() throws SQLException {conn.commit(); //this.close();
}public void rollBack() throws SQLException {conn.rollback(); //this.close(); }}
25
***:济南旅游团购网—后台
(2)管理员登陆系统
public class AdminBean {private List list; private ResultSet rs = null; private int EVERYPAGENUM = 2; private int count = -1; private int qq = 0;
private String sql=\
private String sql2=\//声明时间变量 String
//分页查询登录日志
public void setEVERYPAGENUM(int EVERYPAGENUM){ this.EVERYPAGENUM=EVERYPAGENUM; }
public int getMessageCount() { //得到信息总数 DBO dbo=new DBO(); dbo.open();
try { rs = dbo.executeQuery(sql); rs.next();
count = rs.getInt(1); return count;
} catch (SQLException ex) { ex.printStackTrace(); return -1; } finally { dbo.close(); } }
public int getPageCount() { //得到共多少页(根据每页要显示几条信息) if (count % EVERYPAGENUM == 0) { return count / EVERYPAGENUM; } else { return count / EVERYPAGENUM + 1; } }
public List getMessage(int page) { //得到每页要显示的信息
26
date=new SimpleDateFormat(\
HH:mm:ss\
DBO dbo=new DBO(); dbo.open();
List list = new ArrayList(); try { rs = dbo.executeQuery(sql2);
for (int i = 0; i < (page - 1) * EVERYPAGENUM; i++) { rs.next(); }
for (int t = 0; t < EVERYPAGENUM; t++) { if (rs.next()) { qq++;
List list2=new ArrayList(); list2.add(rs.getInt(\ list2.add(rs.getString(\ list2.add(rs.getString(\ list2.add(rs.getString(\ list2.add(rs.getString(\ list2.add(rs.getString(\ list2.add(rs.getString(\ list.add(list2);
} else { break; //减少空循环的时间 } }
27
***:济南旅游团购网—后台
5系统测试
所谓编码就是把软件设计的结果翻译成计算机可以“理解”的形式—用某种程序设计语言书写的程序。编码的目的是实现人和计算机的通信,指挥计算机按人的意志正确工作。系统测试是系统质量保证的主要活动之一,在系统开发的过程中,在各个阶段都有可能存在错误和缺陷[15]。通过测试是可以发现系统设计中存在的种种问题,并可以及时改正,避免在系统投入使用时才出现不必要的错误,从而导致不必要的损失。测试是质量保证一个砝码,它提供对系统规格说明、设计和编码的最终评审,是发现系统缺陷和错误的有力手段。
5.1 软件测试
无论怎样强调软件的测试的重要性和它对软件可靠性的影响都不过分。测试的目的就是在软件投入生产性运行之前,尽可能多得发现软件中的错误。目前软件测试仍然使保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。
测试的目标或定义:
(1)测试是为了发现程序中的错误而执行程序的过程;
(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案; 成功的测试是发现了至今为止尚未发现的错误的测试。
在旅游网站建设的很多测试中,不断地发现自己设计中错误和不完善的地方,然后通过系统的提示再作相应的修改和完善。测试的确是软件开发人员设计的好帮手。
5.2 测试的目的及相关问题
软件测试分为几个部分:单元测试集中检查软件设计的最小单元——模块,包括程序测试,即发现程序中的代码错误,然后逐一解决;组装测试相当于联调,主要是考察模块间的接口和各模块之间的联系。这是一个持续的过程,可以在将组件加入某一项之前逐个的加以测试,也可以把项目连编成应用程序之后再进行测试。确认测试主要检查软件功能与用户的需求是否一致。在一般的情况下,这些步骤都被顺序地实现。
在测试和调试应用程序时,应注意以下问题: (1)程序设计者不应测试自己设计的程序;
(2)测试用例的设计不仅要有合理的输入数据,还要有不合理的输出数据; (3)除了检查程序是否做完了它应做的事之外,还要检查它是否做完了它不应做的事。
在测试和调试应用程序后,系统应达到以下要求: (1)能较好的完成系统应具备的基本功能; (2)运行不会导致崩溃或产生错误信息;
28