JDBC综合例题

这个综合例题主要就是使用JDBC的方式来对数据库表格进行增、删、查、改操作,其中还要逐个对这些方法进行测试,所以还要编写测试用例。编写这个例题主要意义是练习和进一步熟悉JDBC对数据库表格进行增、删、查、改操作的方式,巩固JDBC这个知识点。

这个例题里要用到的技术有:MavenDBUnitC3P0连接池、Log4jMySQL数据库。

1.先准备一个干净的数据库和两个表格,并且给这两个表格构建关联关系:

JDBC综合例题_第1张图片

JDBC综合例题_第2张图片



2.创建Maven工程,并配置好所有的依赖包:




配置好依赖包:




3.在源码文件夹和测试源码文件夹里创建好相应的包(package),以便分类,免得所有类都挤在一起显得乱糟糟的:

JDBC综合例题_第3张图片


源码文件夹下的包:

c3p0manager 这个包是用来放连接对象管理类的

org.zero01.iuds 这个包是用来放封装类和功能类的

exception 这个包是用来放自定义异常类的

 

测试源码文件夹下的包:

org.zero01.test 这个包是用来放测试用例类的

 

 

  4.c3p0manager 包下创建一个类,这个类用于通过C3P0连接池获得数据库连接对象,并且这个类是单例模式:

代码示例:

JDBC综合例题_第4张图片



5.编写两个表格的数据封装类:

Cls代码示例:



Student代码示例:




6.编写对Cls表格操作的功能类:

JDBC综合例题_第5张图片

JDBC综合例题_第6张图片

JDBC综合例题_第7张图片

JDBC综合例题_第8张图片

JDBC综合例题_第9张图片

JDBC综合例题_第10张图片




7.编写对Student表格操作的功能类:

JDBC综合例题_第11张图片

JDBC综合例题_第12张图片

JDBC综合例题_第13张图片

JDBC综合例题_第14张图片

JDBC综合例题_第15张图片

JDBC综合例题_第16张图片

JDBC综合例题_第17张图片




8.在测试源码文件夹下的org.zero01.test包里编写测试类,对两个功能类的方法逐个进行测试:

JDBC综合例题_第18张图片

JDBC综合例题_第19张图片

JDBC综合例题_第20张图片

JDBC综合例题_第21张图片

JDBC综合例题_第22张图片

JDBC综合例题_第23张图片

JDBC综合例题_第24张图片

JDBC综合例题_第25张图片

JDBC综合例题_第26张图片

JDBC综合例题_第27张图片

JDBC综合例题_第28张图片

JDBC综合例题_第29张图片

JDBC综合例题_第30张图片

JDBC综合例题_第31张图片



测试结果:




测试覆盖率:

JDBC综合例题_第32张图片



日志信息的打印:

JDBC综合例题_第33张图片

提示:我这是已经完成的代码,但是各位在实际编写代码的时候,最好是写一个方法就测试一下,不要全部功能代码写完再写测试用例测试,因为那样一旦出问题了,很多地方的代码都要进行修改,如果写一个方法就测一个方法的话,就只需要针对一个方法进行修改,而其他方法不需要变动,这样效率高一些并且修改代码也轻松些,不用到处修修改改弄得眼花缭乱。

 


  我在编写C3P0Manager类的时候,犯了一个逻辑上的小错误,在这里记录一下这个错误,出现这个错误是因为我把构建对象的属性声明在了C3P0数据源类变量的前面,在构造器外调用getConnection方法的时候就会抛出空指针异常:

JDBC综合例题_第34张图片



图解:

JDBC综合例题_第35张图片



正确的声明方式:

JDBC综合例题_第36张图片