Apache Commons DbUtils jar是開源JDBC數據庫工具包,本工具包能夠簡化JDBC的部分重復代碼,減輕工作量。commons dbutils 包含有兩個大類,一個是簡化,一個是實現,有需要的就來IT貓撲下載吧!
Commonsdbutils是什么
commons-dbutils 是 Apache 組織提供的一個開源 JDBC 工具類庫,對傳統操作數據庫的類進行二次封裝,可以把結果集轉化成List。
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
BeanHandler 將ResultSet行轉換為一個JavaBean的ResultSetHandler實現類
BeanListHandler 將ResultSet轉換為List
ColumnListHandler 將ResultSet的一個列轉換為List
KeyedHandler 將ResultSet轉換為Map
MapHandler 將ResultSet的首行轉換為一個Map的ResultSetHandler實現類
MapListHandler 將ResultSet轉換為List
ScalarHandler 將ResultSet的一個列到一個對象。
3、------------------------------------
包org.apache.commons.dbutils.wrappers?
添加java.sql類中功能包裝類。
類摘要
SqlNullCheckedResultSet 在每個getXXX方法上檢查SQL NULL值的ResultSet包裝類。
StringTrimmedResultSet 取出結果集中字符串左右空格的ResultSet包裝類。
commons dbutils環境
Java5
commons-dbutils-1.6-bin.zip
mysql-noinstall-5.1.40-win32.zip
mysql-connector-java-5.1.10.zip
DbUtils怎么用

Apache Commons DbUtils 1.6 主要改進內容
ArrayHandler should return an empty array when handle has no rows Fixes DBUTILS-110.
Order of columns not retained in BasicRowProcessor with HashMap Fixes DBUTILS-114.?
BeanProcessor not returning nanoseconds Fixes DBUTILS-118.?
Add support for conversion of ResultSet strings to enums in the BeanProcessor Fixes DBUTILS-113.?
In BeanProcessor#isCompatibleType, can Integer.class.isInstance(value) be replaced by value instanceof Integer (etc)? ? ? ? ?Simplified code by using instanceof. Fixes DBUTILS-85.
DBUtils can't build using jdk 1.7 - Driverproxy needs to implement getParentLogger() ? ? ? ?Add dynamic invocation. Fixes DBUTILS-106.?
Create functionality to return auto-generated keys in batches of SQL inserts Fixes DBUTILS-108.?
Patch QueryLoader to also load from XML properties files Fixes DBUTILS-107.
Updated the use of getColumnName to try getColumnLabel first Fixes DBUTILS-100.
Add missing JavaDoc to QueryRunner#insert Fixes DBUTILS-98.
Add an Abstract ResultSetHandler implementation in order to reduce redundant 'resultSet' variable invocation Fixes DBUTILS-97.
DbUtils#loadDriver(ClassLoader,String) makes DriverManager throwing "No suitable driver found for jdbc" ? ? ? ?if ClassLoader is not the System's one Fixes DBUTILS-96.
Added insert methods to QueryRunner and AsyncQueryRunner that return the generated key. Fixes DBUTILS-87.





