Apache——DBUtils框架ResultSetHandler接口使用


參考鏈接: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),再把這些map再存到一個map里,其key為指定的列。

    ScalarHandler:獲取結果集中第一行數據指定列的值,常用來進行單值查詢

    如:Long long = (Long)queryRunner.query("select count(*) from account",new ScalarHandler(1));//進行單值查詢

 

 

Apache——DBUtils框架
-------------------------------------------------------------------------------------------------
Apache——DBUtils框架
-------------------------------------------------------------------------------------------------
Apache——DBUtils框架

Apache——DBUtils框架

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM