日期:2014-05-16  浏览次数:20464 次

Commons DbUtils源码阅读之实例及测试应用

? 去年整了一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 .

?

?

1 楼 mefly 2011-04-08  
这篇是最后一篇了吗,呵呵,写得不错,加油
2 楼 mefly 2011-04-08  
Commons DbUtils 是1.3 版本吗
3 楼 cuics-100 2011-04-10  
mefly 写道
Commons DbUtils 是1.3 版本吗

是,谢谢支持啊!