[Apache commons系列]DBUtils簡介-2.核心類簡介
DbUtils是一個小型的類庫,不需要也不值得花太長的時間去熟悉每一個類。DbUtils核心其實只有三個類/介面,即QueryRunner
、ResultSetHandler
和DbUtls
(官方文件中寫的是前兩個)。
一.下面先過一下DbUtils的幾個包(package):
1.org.apache.commons.dbutils
提供核心類/介面,提供最常用最通用的功能。
2.org.apache.commons.dbutils.handlers
提供對ResultSet
的各種形式的包裝,所有類都實現了ResultSetHandler
,因此也可以看做是ResultSetHandler
的延伸。其功能比如把ResultSet
中每一行變成一個JavaBean或一個數組等。
3.org.apache.commons.dbutils.wrappers
提供對ResultSet
中的值的包裝過濾,所有類都實現了java.lang.reflect.InvocationHandler
。其功能比如將ResultSet
中所有String
值進行trim()
二.下面是對DbUtils各類的使用進行介紹:
1.org.apache.commons.dbutils.DbUtils
DbUtils類是一個工具類,裡面所有方法都是靜態的,因此無需例項化即可呼叫,通過API介紹即可瞭解其功能:
close
:關閉Connection
、Statement
或ResultSet
,忽略null;closeQuietly
Connection
、Statement
或ResultSet
,它會盡力去關閉,忽略null和SQLException
;commitAndClose
:提交併關閉Connection
,忽略null;commitAndCloseQuietly
:提交併關閉Connection
,忽略null和SQLException
;loadDriver
:和Class.forName().newInstance()
功能一樣,但它能捕獲異常,並返回true
或false
;printStackTrace
:列印SQLException
的詳細錯誤資訊;printWarnings
:列印Connection
的警告資訊;rollback
:回滾操作,忽略null;rollbackAndClose
:回滾操作並關閉,忽略null;rollbackAndCloseQuietly
:回滾操作並關閉,忽略null、SQLException
。
2.org.apache.commons.dbutils.QueryRunner
batch
:執行成批的INSERT、UPDATE、DELETE操作;fillStatement
:用Object[]
或JavaBean的值填充PreparedStatement
中的佔位符;query
:執行查詢操作(Statement
或PreparedStatement
均可),並用ResultSetHandler
來處理ResultSet
;update
:執行INSERT或UPDATE操作(Statement
或PreparedStatement
均可)。
3.org.apache.commons.dbutils.ResultSetHandler
所有在DbUtils裡提供的的ResultSetHandler
實現都是執行緒安全的
ArrayHandler
:把ResultSet
第一行包裝成Object[]
;ArrayListHandler
:把ResultSet包裝成
List<Object[]>
;BeanHandler
:把ResultSet
第一行包裝成一個JavaBean;BeanListHandler
:把ResultSet
第一行包裝成一個List<JavaBean>
;ColumnListHandler
:抽取ResultSet
指定的列,以List<Object>
物件的形式返回,預設第一列;KeyedHandler
:包裝ResultSet
,以Map<Object,Map<String,Object>>
物件形式返回,第一個Object
是指定的列值,第二個Map
中String
是列名;MapHandler
:把ResultSet
第一行包裝成Map<String, Object>
;MapListHandler
:把ResultSet包裝成
List<Map<String,Object>>
;ScalarHandler
:抽取ResultSet
第一行指定列,以Object
物件形式返回。
4.org.apache.commons.dbutils.wrappers.SqlNullCheckedResultSet
對ResultSet
中的null值進行處理。
5.org.apache.commons.dbutils.wrappers.StringTrimmedResultSet
對ResultSet
中的String
進行trim()
處理。