參考鏈接:http://i.cnblogs.com/EditPosts.aspx?opt=1
簡介
commons-dbutils 是 Apache 組織提供的一個開源 JDBC工具類庫,它是對JDBC的簡單封裝,學習成本極低,並且使用dbutils能極大簡化jdbc編碼的工作量,同時也不會影響程序的性能。因此dbutils成為很多不喜歡hibernate的公司的首選。
API介紹:
org.apache.commons.dbutils.QueryRunner --- 核心
org.apache.commons.dbutils.ResultSetHandler
工具類
org.apache.commons.dbutils.DbUtils。
DbUtils類
DbUtils:提供如關閉連接、裝載JDBC驅動程序等常規工作的工具類,里面的所有方法都是靜態的。主要方法如下:
public static void close(...) throws java.sql.SQLException:DbUtils類提供了三個重載的關閉方法。這些方法檢查所提供的參數是不是NULL,如果不是的話,它們就關閉Connection、Statement和ResultSet。
public static void closeQuietly(...):這一類方法不僅能在Connection、Statement和ResultSet為NULL情況下關閉,還能隱藏一些在程序中拋出的SQLException。
public static void commitAndCloseQuietly(Connection conn):用來提交連接,然后關閉連接,並且在關閉連接時不拋出SQL異常。
public static boolean loadDriver(java.lang.String driverClassName):這一方法裝載並注冊JDBC驅動程序,如果成功就返回true。使用該方法,你不需要捕捉這個異常ClassNotFoundException。
QueryRunner類
該類簡化了SQL查詢,它與ResultSetHandler組合在一起使用可以完成大部分的數據庫操作,能夠大大減小編碼量。
QueryRunner類提供了兩個構造方法:
默認的構造方法
需要一個javax.sql.DataSource來作參數的構造方法。
QueryRunner類的主要方法
更新操作
public int update(Connection conn, String sql, Object...params)
public int update(String sql,Object...params)
查詢操作
public Object query(Connection conn, String sql, ResultSetHandler rsh, Object...params)
public Object query(String sql, ResultSetHandler rsh, Object...params)
ResultSetHandler接口
該接口用於處理java.sql.ResultSet,將數據按要求轉換為另一種形式。
ResultSetHandler接口提供了一個單獨的方法:Object handle(java.sql.ResultSet.rs)。
ResultSetHandler接口的實現類
ArrayHandler:把結果集中的第一行數據轉換成對象數組。
ArrayListHandler:把結果集中的每一行數據都轉換成一個對象數組,再存放到List中。
BeanHandler:將結果集中的第一行數據封裝到一個對應的JavaBean實例中。
BeanListHandler:將結果集中的每一行數據都封裝到一個對應的JavaBean實例中,存放到List里。
MapHandler:將結果集中的第一行數據封裝到一個Map里,key是列名,value就是對應的值。
MapListHandler:將結果集中的每一行數據都封裝到一個Map里,然后再存放到List。
ColumnListHandler:將結果集中某一列的數據存放到List中。
KeyedHandler(name):將結果集中的每一行數據都封裝到一個Map里(List
ScalarHandler:獲取結果集中第一行數據指定列的值,常用來進行單值查詢
如:Long long = (Long)queryRunner.query("select count(*) from account",new ScalarHandler(1));//進行單值查詢
-------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------