日期:2014-05-16 浏览次数:20534 次
?
http://java.chinaitlab.com/advance/796954_3.html
Hibernate 太复杂,iBatis 不好用,JDBC 代码太垃圾,DBUtils 在简单与优美之间取得了完美平衡。
?
一、概述
?
DbUtils 小巧的Java 数据库操作工具,它在JDBC 的基础上做了科学的封装,旨在简化JDBC 代码混乱与重复。
?
对于JDBC 代码,存在很多问题,算是对Java的批判:
1 、操作过程复杂,代码操作一个模式,大量的重复。
2 、结果集难以处理,拿到一个ResultSet 干屁啊,一个一个度,转称JavaBean ,后来形成List ,太麻烦了。
3 、到处都强制检查SQLException ,烦不烦啊,影响代码的美观和可读性。
?
当然,以上的批判不是说JDBC 设计不合理,二是缺乏更高层操作API 的支持。因此才产生了众多的开源数据库操作的框架和工具包。
?
二、熟悉DBUtils 的API
?
针对DBUitlsAPI 的包,做个简单的翻译,以便迅速掌握API 的使用。
1
、------------------------------------
包org.apache.commons.dbutils
??????? DbUtils
是一个为简化JDBC
操作的小类库。
接口摘要
ResultSetHandler
将ResultSet
转换为别的对象的工具。
RowProcessor
将ResultSet
行转换为别的对象的工具。?
类摘要
BasicRowProcessor - RowProcessor
接口的基本实现类。
BeanProcessor - BeanProcessor
匹配列名到Bean
属性名,并转换结果集列到Bean
对象的属性中。
DbUtils
一个JDBC
辅助工具集合。
ProxyFactory
产生JDBC
接口的代理实现。
QueryLoader
属性文件加载器,主要用于加载属性文件中的 SQL
到内存中。
QueryRunner
使用可插拔的策略执行SQL
查询并处理结果集。
ResultSetIterator
包装结果集为一个迭代器。
?
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<JavaBean>
的ResultSetHandler
实现类
ColumnListHandler
将ResultSet
的一个列转换为List<Object>
的ResultSetHandler
实现类
KeyedHandler
将ResultSet
转换为Map<Map>
的ResultSetHandler
实现类