DbUtils又叫Commons DbUtils,它是是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能。 DBUtils是java编程中的数据库操作实用工具,小巧简单实用,它有着几个特征。 1.对于数据表的读操作,他可以把结果转换成List,Array,Set等java集合,便于程序员操作; 2.对于数据表的写操作,也变得很简单(只需写sql语句) 3.可以使用数据源,使用JNDI,数据库连接池等技术来优化性能–重用已经构建好的数据库连接对象,而不像php,asp那样,费时费力的不断重复的构建和析构这样的对象。 在使用DBUtils之前,应该注意一些问题: 1、DBUtils是JDBC的简单封装,可以和JDBC混合使用。 2、DBUtils对结果集自动封装为JavaBean是有着苛刻要求的:必须满足JavaBean的规范,其次Bean的getter与setter方法的名字与结果集的列名一一对应,而不要求JavaBean的私有成员与表结果集列名一一对应。 3、DBUtils可以将结果集封装为各种类型,主要有:Bean/List,Map/List/Map,数组/List<数组>,列/List<列>,这些类型。对于Map的类型使用KeyedHandler作为结果集处理器,内层的Map是“列名-值"对,外层的Map是“主键-内层Map的引用”,但此处的主键不一定就是数据库的主键,可以随意指定。 整个dbutils总共才3个包: 1、包org.apache.commons.dbutils 接口摘要 ResultSetHandler 将ResultSet转换为别的对象的工具。 RowProcessor 将ResultSet行转换为别的对象的工具。 类摘要 BasicRowProcessor RowProcessor接口的基本实现类。 BeanProcessor BeanProcessor匹配列明到Bean属性名,并转换结果集列到Bean对象的属性中。 2、包org.apache.commons.dbutils.handlers ResultSetHandler 接口的实现类类摘要AbstractListHandler 将ResultSet转为List的抽象类ArrayHandler 将ResultSet转为一个Object[]的ResultSetHandler实现类ArrayListHandler 将ResultSet转换为List<Object[]>的ResultSetHandler实现类BeanHandler 将ResultSet行转换为一个JavaBean的ResultSetHandler实现类BeanListHandler 将ResultSet转换为List的ResultSetHandler实现类ColumnListHandler 将ResultSet的一个列转换为List的ResultSetHandler实现类KeyedHandler 将ResultSet转换为Map的ResultSetHandler实现类MapHandler 将ResultSet的首行转换为一个Map的ResultSetHandler实现类MapListHandler 将ResultSet转换为List的ResultSetHandler实现类ScalarHandler 将ResultSet的一个列到一个对象。 3、包org.apache.commons.dbutils.wrappers 添加java.sql类中功能包装类。类摘要SqlNullCheckedResultSet 在每个getXXX方法上检查SQL NULL值的ResultSet包装类。StringTrimmedResultSet 取出结果集中字符串左右空格的ResultSet包装类。
