5.6 编写测试客户端
采用DAO模式的目的就在于简化对数据库的操作。本节将以一个操作数据库的实例来说明以DAO方式访问数据库的具体步骤,从而深刻体会DAO模式的实用性。
跟我做
(1)通过ScoreDAOFactory取得一个ScoreDAO的实例,同时在内存中创建了score数据库,并且建立了具有3个字段的Score表。
(2)准备3个Score类的对象,分别为firstScore、secondScore和thirdScore。编写代码如下:
//firstScore 实例,
Score firstScore = new Score();
//CNO字段值为34
firstScore.setCNO("34");
//SNO字段值为1
firstScore.setSNO("1");
//GRADE字段值为2.5
firstScore.setGRADE((float) 2.5);
// secondScore实例
Score secondScore = new Score();
//CNO字段值为45
secondScore.setCNO("45");
//GRADE字段值为67.9
secondScore.setGRADE((float) 67.9);
//SNO字段值为2
secondScore.setSNO("2");
// thirdScore实例
Score thirdScore = new Score();
//CNO字段值为78
thirdScore.setCNO("78");
//SNO字段值为3
thirdScore.setSNO("3");
//GRADE字段值为89
thirdScore.setGRADE((float) 89.0);
(3)将firstScore插入到数据库中。编写代码如下:
// 通过ScoreDAO的实例执行插入操作
scoreDAO.insertScore(firstScore);
// 查询数据库中的所有记录
result = scoreDAO.selectAll();
// 输出所有记录信息
info(result);
运行结果如图5-13所示。
![]()
图5-13 插入firstScore记录的执行结果
(4)将secondScore插入到数据库中。编写代码如下:
// 通过ScoreDAO的实例执行插入操作
scoreDAO.insertScore(secondScore);
// 查询数据库中的所有记录
result = scoreDAO.selectAll();
// 输出所有记录信息
info(result);
运行结果如图5-14所示。
![]()
图5-14 插入secondScore记录的执行结果
(5)将secondScore记录修改为thirdScore。编写代码如下:
//通过ScoreDAO的实例执行更新操作
scoreDAO.updateScore(secondScore, thirdScore);
//查询数据库中的所有记录
result = scoreDAO.selectAll();
//输出记录信息
info(result);
运行结果如图5-15所示。
![]()
图5-15 更新secondScore后的执行结果
(6)将firstScore记录删除。编写代码如下:
//通过ScoreDAO的实例执行删除操作
scoreDAO.deleteScore(firstScore);
//查询数据库中的所有记录
result = scoreDAO.selectAll();
//输出记录信息
info(result);
运行结果如图5-16所示。
![]()
图5-16 删除firstScore后的执行结果
以上简单的实例实现了数据库的查询、插入、删除和更新操作。整个操作完全以面向对象的形式进行,屏蔽了复杂的SQL语句,提高了程序的可读性和开发效率。







