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

(转)Apache_Commons_DbUtils_快速上手

?

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 的支持。因此才产生了众多的开源数据库操作的框架和工具包。

?

二、熟悉DBUtilsAPI

?

针对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 行转换为一个JavaBeanResultSetHandler 实现类
BeanListHandler
ResultSet 转换为List<JavaBean>ResultSetHandler 实现类
ColumnListHandler
ResultSet 的一个列转换为List<Object>ResultSetHandler 实现类
KeyedHandler
ResultSet 转换为Map<Map>ResultSetHandler 实现类