去年整了一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
.
分享到:
相关推荐
commons-dbutils包是Apache开源组织提供的用于操作数据库的工具包。简单来讲,这个工具包就是用来更加方便我们操作数据库的,最近工作中使用了一下,感觉确实方便很多,基本告别自己封装JDBC代码对数据库进行增删改...
使用 Commons dbutils 可以极大地简化 JDBC 编程,避免了许多手动处理连接、声明和结果集的工作,同时也提高了代码的可读性和可维护性。例如,使用 `QueryRunner` 执行查询和更新操作时,只需要提供 SQL 语句、参数...
这是DBUtils的源码版本,开发者可以查看并学习源代码,理解其内部实现逻辑,进行调试或定制功能。源码中包含了详细的注释,有助于理解每个方法的作用和用法。 3. 关于DBUtils的知识点: - **数据库连接管理**:...
Apache Commons DBUtils是一个Java库,它为JDBC(Java Database Connectivity)提供了一个实用工具层,旨在简化数据库操作,减轻开发人员处理低级 JDBC API 的负担。这个库是基于Apache Software Foundation发布的,...
而"commons-dbutils-1.3-src.zip"则包含了源代码,对于开发者来说,查看源码有助于理解其工作原理,进行定制或扩展。 在实际使用中,开发者可以通过以下步骤集成DBUtils: 1. 添加DBUtils的jar文件到项目的类路径...
DBUtils封装了对JDBC的操作 简化了JDBC操作 可以少写代码 org apache commons dbutils DbUtils 关闭链接等操作 QueryRunner 进行查询的操作 org apache commons dbutils handlers ArrayHandler :将ResultSet中第一...
这个"commons-dbutils-1.0-src.zip"文件包含了DBUtils 1.0版本的源代码,使得开发者能够深入理解其内部机制,进行定制化开发或者调试。DBUtils库主要为JDBC(Java Database Connectivity)提供了一层方便、高效的...
DbUtils与JDBC结合使用,可以避免大量重复的数据库连接关闭、异常处理等代码,使数据库操作更加简洁、安全。DbUtils的核心类有QueryRunner、ResultSetHandler等,它们简化了常见的CRUD操作,比如执行SQL查询、更新、...
`commons-dbutils-1.4-src.zip` 则提供了源代码,开发者可以深入研究其内部实现,了解每个类和方法的工作原理,这对于学习和调试很有帮助。 通过源码,我们可以看到 QueryRunner 如何优化 SQL 执行,如何处理结果集...
DbUtils是Apache组织提供的一款Java数据库操作工具包,它的全称是Apache Commons DbUtils。DbUtils的主要目的是简化数据库操作,让开发人员能够更专注于业务逻辑而不是底层的JDBC细节。这个工具包基于Java,适用于...
Dbutils 是 Apache Commons DbUtils 的简称,它是一个用于简化 Java 数据库编程的开源库。Dbutils 基于 JDBC(Java Database Connectivity),提供了一套简洁、高效且易于使用的API,帮助开发者更方便地处理数据库...
在上述代码中,我们创建了一个数据源,然后用它来初始化QueryRunner实例。执行SQL查询时,DbUtils会自动处理结果集并将其转换为User对象。 总的来说,Apache Commons DbUtils是一个非常实用的工具,对于任何需要...
- "commons-dbutils-1.7-src.zip"提供了DbUtils的源代码,开发者可以通过阅读源码了解其内部实现,学习如何处理数据库操作和异常。 - 源代码可以帮助开发者扩展DbUtils,或者根据需求定制自己的数据库访问工具。 ...
C3P0和DBUtils是两个非常重要的库,用于简化Java应用程序中的数据库操作。以下是这两个库的详细介绍: C3P0是一个开源的JDBC连接池,它的全称是Commerical-grade Connection Pooling for JDBC。C3P0-0.9.1.2.jar是...
教程中的源码会展示实际的编程示例,帮助你更好地理解和应用这些概念。笔记可能包含了关键点的总结和学习心得,是巩固知识的好材料。 总的来说,掌握Java JDBC和DbUtils对于任何Java开发者来说都是必备技能,特别是...
本实例将深入探讨如何使用DBUtils进行基本的底层数据应用,特别是连接池C3P0和JDBC的三种包装形式。 ### 1. DBUtils概述 DBUtils是一个实用工具库,它基于JDBC API进行了封装,提供了更友好的接口和异常处理机制。...
在Java编程中,尤其是在处理数据库操作时,Apache Commons DBUtils库是一个非常实用的工具,它简化了JDBC(Java Database Connectivity)的使用。DBUtils提供了一种更安全、更易于管理的方式来进行数据库交互,避免...
- **DataSource**: 数据源管理,dbutils可以配合Apache的`commons-dbcp`或`c3p0`等数据源管理库,提供连接池服务,有效地管理数据库连接,提高系统性能。 - **TransactionManager**: 提供了简单的事务管理功能,...
Apache Commons DBUtils 是一个轻量级的 JDBC 工具包,它简化了 Java 应用程序中的数据库操作。它通过提供一系列实用工具方法来帮助开发者更方便地处理 SQL 查询结果,并减少样板代码的数量。 #### 二、核心组件...