apachecommons dbutils 是 Apache 组织提供的一个开源 JDBC 工具类库,对传统操作数据库的类进行二次封装,可以把结果集转化成List。
目前最新的版本是1.6。
官网地址为:http://commons.apache.org/proper/commons-dbutils/
DBUtils是个小巧的JDBC轻量级封装的工具包,其最核心的特性是结果集的封装,可以直接将查询出来的结果集封装成JavaBean,这就为我们做了最枯燥乏味、最容易出错的一大部分工作。
在使用DBUtils之前,应该注意一些问题:
1、DBUtils是JDBC的简单封装,可以和JDBC混合使用。
2、DBUtils对结果集自动封装为JavaBean是有着苛刻要求的:必须满足JavaBean的规范,其次Bean的getter与setter方法的名字与结果集的列名一一对应,而不要求JavaBean的私有成员与表结果集列名一一对应。
3、DBUtils可以将结果集封装为各种类型,主要有:Bean/List<Bean>,Map/List<Map>/Map<Map>,数组/List<数组>,列/List<列>,这些类型。
4、DBUtils执行插入操作的时候,无法返回自增主键,可以通过变通的方法来实现,比如先获取一个sequence,然后把这个sequence插入数据库中,并且返回这个sequence即可。
5、DBUtils的性能和JDBC性能是一样,测试过程中没发现性能损失,拥有了很高性能的同时,而不失JDBC的灵活性。
DbUtils类
诸如关闭连接、装载JDBC驱动程序之类的常规工作提供有用方法的类,它里面所有的方法都是静态的。
A:loadDriver(StringdriveClassName): 这一方法装载并注册JDBC驱动程序,如果成功就返回TRUE,不需要去捕捉ClassNotFoundException异常。通过返回值判断驱动程序是否加载成功。
B:close方法:DbUtils类提供了三个重载的关闭方法。这些方法检查所提供的参数是不是NULL,如果不是的话,它们就关闭连接(Connection)、声明(Statement)或者结果集(ResultSet)对象。
…
QueryRunner类
该类简单化了SQL 查询,它与 ResultSetHandler(接口 后面将会介绍) 组合在一起使用可以完成大部分的数据库操作,能够大大减少编码量
【构造函数(1):QueryRunner() (2):QueryRunner(Datasource ds)】。
A:query(Connectionconn, String sql, Object[]params, ResultSetHandler rsh)方法:这一方法执行一个带参数的选择查询,在这个查询中,对象阵列的值被用来作为查询的置换参数。这一方法内在地处理PreparedStatement和ResultSet 的创建和关闭。ResultSetHandler对象把从 ResultSet得来的数据转变成一个更容易的或是应用程序特定的格式来使用。
ResultSetHandler接口
正如它的名字所示,这一接口执行处理一个java.sql.ResultSet,将数据转变并处理为任何一种形式,这样有益于其应用而且使用起来更容易。这一组件提供了
ArrayHandler :将ResultSet中第一行的数据转化成对象数组
…
总结一下,其实就是三个主要功能:
1. 连接关闭数据库;
2. 数据库处理;
3. 结果处理