日期:2014-05-16 浏览次数:20510 次
? 去年整了一Commons DbUtils的源码阅读,现如今,对该项目做个一系列的小应用测试,现说明运行环境:
? 1)该测试所有的数据抓取,都是建立在数据库MySQL,数据结构使用的是Spring开源项目jpetstore,只是示例DbUtils的一些简单使用,所以我只使用了其中的signon表,数据库的初始化SQL在源码附件jpetstore.signon.sql;
? 2)该应用的测试都建立在junit框架之上,并建立一所有测试单元的父类BaseTest,利用junit的生命周期,初始化数据源,并获取数据连接,现列出该类代码:
?
private static final String driverName = "com.mysql.jdbc.Driver"; private static final String url = "jdbc:mysql://localhost:3306/jpetstore"; private static final String username = "root"; private static final String password = "root"; private Connection con = null; public Connection getConnection(){ return con; } private void getDataSource() { try { if (DbUtils.loadDriver(driverName)) {//加载数据驱动 con = DriverManager.getConnection(url, username, password);//获取数据连接 } } catch (SQLException e) { e.printStackTrace(); } } @Override protected void setUp() throws Exception { System.out.println("datasource connection"); getDataSource();//初始化数据连接 System.out.println("connection done"); } @Override protected void tearDown() throws Exception { System.out.println("datasource closed"); closeDataSource(); System.out.println("close done"); } private void closeDataSource() throws SQLException { DbUtils.close(con);//关闭数据连接 }?
?? JUnit测试框架初始化时,先会调用setUp方法,利用这个特性,我们会调用getDataSource()获取数据库连接;当调用完毕测试用例时,在tearDown()方法中通过调用closeDataSource()关闭数据连接;
?3)因为会测试应用到ResultSet对bean的映射,比如BeanHandlerTest等;所以需要对signon表 做一个bean映射,在此我们新建一个Person类,它只有简单的username/password属性;
?4)所有的测试示例均在org.apache.commons.dbutils.test包下,当然了,也未对所有的类做详细的测试,只对常用应用做了简单的测试,如果你愿意,你可以做出更多、更好的测试类。DbUtils组件里涉及到的相关类,我均以源码的形式压缩在附件里,主要也是想方便大家阅读修改。
? OK,对这个DbUtils组件测试应用的简单说明就到这里,具体可参见附件DButils .
?
?