天天看點

Java精選筆記_DBUtils工具API介紹ResultSetHandler實作類

DBUtils工具

API介紹

為了更加簡單地使用JDBC,Apache組織提供了一個工具類庫commons-dbutils元件。

該元件實作了對JDBC的簡單封裝,可以在不影響性能的情況下極大簡化JDBC的編碼工作量。

commons-dbutils的核心是兩個類和一個接口:DBUtils類、QueryRunner類、ResultSetHandler接口

DBUtils類

主要為如關閉連接配接、裝載JDBC驅動程式之類的正常工作提供方法,它提供的方法都是靜态方法

    close() 

    closeQuietly(Connection conn,Statement stmt,ResultSet rs)

    commitAndCloseQuietly(Connection conn)

    loadDriver(java.lang.String driverClassName)

QueryRunner類

簡化了執行SQL語句的代碼,它與ResultSetHandler組合在一起就能完成大部分的資料庫操作,大大減少編碼量。針對不同的資料庫操作,QueryRunner類提供的不同的方法。

    query(Connection conn, String sql, ResultSetHandler rsh,Object[] params) 

    query(String sql, ResultSetHandler rsh, Object[] params)

    query(Connection conn, String sql, ResultSetHandler rsh)

    update(Connection conn, String sql, Object[] params)

    update(Connection conn, String sql)

ResultSetHandler接口

用于處理ResultSet結果集,它可以将結果集中的資料轉為不同的形式,根據結果集中資料類型的不同,ResultSetHandler提供了不同的實作類。

    AbstractKeyedHandler 該類為抽象類,能夠把結果集裡面的資料轉換為用Map存儲。

    AbstractListHandler 該類為抽象類,能夠把結果集裡面的資料轉換為用List存儲,抽象類。

    ArrayHandler 把結果集中的第一行資料轉成對象數組。

    ArrayListHandler 把結果集中的每一行資料都轉成一個對象數組,再将數組存放到List中。

    BaseResultSetHandler 把結果集轉換成其他對象的擴充。

    BeanHandler 将結果集中的第一行資料封裝到一個對應的JavaBean執行個體中。

    BeanListHandler 将結果集中的每一行資料都封裝到一個對應的JavaBean執行個體中,存放到List裡。

    BeanMapHandler 将結果集中的每一行資料都封裝到一個對應的JavaBean執行個體中,然後再根據指定的key把每個JavaBean再存放到一個Map裡。

    ColumnListHandler 将結果集中某一列的資料存放到List中。

    KeyedHandler 将結果集中的每一行資料都封裝到一個Map裡,然後再根據指定的key把每個Map再存放到一個Map裡。

    MapHandler 将結果集中的第一行資料封裝到一個Map裡,key是列名,value就是對應的值。

    MapListHandler 将結果集中的每一行資料都封裝到一個Map裡,然後再存放到List中。

    ScalarHandler 将結果集中某一條記錄的其中某一列的資料存儲成Object對象。

ResultSetHandler實作類

ArrayHandler和ArrayListHandler

可以将把結果集中的第一行資料轉成對象數組。

Beanhandler、BeanListHandler和BeanMapHandler

将結果集中的資料封裝到對應的JavaBean執行個體中,這也是實際開發中最常用的結果集處理方法。

MapHandler和MapListHandler

将結果集資料存成Map映射。

ColumnListHandler

當我們需要查詢結果集中的一列資料時,可以使用ColumnListHandler類。

ScalarHandler

如果需要輸出結果集中一行資料的指定字段值,可以使用ScalarHandler類。

KeyedHandler

如果需要輸出結果集中一行資料的指定字段值,可以使用KeyedHandler類。

繼續閱讀