1. 程式人生 > >[Apache commons系列]DBUtils簡介-2.核心類簡介

[Apache commons系列]DBUtils簡介-2.核心類簡介

  DbUtils是一個小型的類庫,不需要也不值得花太長的時間去熟悉每一個類。DbUtils核心其實只有三個類/介面,即QueryRunnerResultSetHandlerDbUtls (官方文件中寫的是前兩個)。(來源:http://blog.csdn.net/inkfish)

一.下面先過一下DbUtils的幾個包(package):(來源:http://blog.csdn.net/inkfish)

1.org.apache.commons.dbutils
  提供核心類/介面,提供最常用最通用的功能。(來源:http://blog.csdn.net/inkfish)

2.org.apache.commons.dbutils.handlers


  提供對ResultSet 的各種形式的包裝,所有類都實現了ResultSetHandler ,因此也可以看做是ResultSetHandler 的延伸。其功能比如把ResultSet 中每一行變成一個JavaBean或一個數組等。(來源:http://blog.csdn.net/inkfish)

3.org.apache.commons.dbutils.wrappers
  提供對ResultSet 中的值的包裝過濾,所有類都實現了java.lang.reflect.InvocationHandler 。其功能比如將ResultSet 中所有String 值進行trim()

操作,或是把所有null值賦一個有意義的新值。(來源:http://blog.csdn.net/inkfish)

二.下面是對DbUtils各類的使用進行介紹:(來源:http://blog.csdn.net/inkfish)

1.org.apache.commons.dbutils.DbUtils
  DbUtils類是一個工具類,裡面所有方法都是靜態的,因此無需例項化即可呼叫,通過API介紹即可瞭解其功能:(來源:http://blog.csdn.net/inkfish)

  • close :關閉ConnectionStatementResultSet ,忽略null;
  • closeQuietly
    :安靜的關閉ConnectionStatementResultSet ,它會盡力去關閉,忽略null和SQLException
  • commitAndClose :提交併關閉Connection ,忽略null;
  • commitAndCloseQuietly :提交併關閉Connection ,忽略null和SQLException
  • loadDriver :和Class.forName().newInstance() 功能一樣,但它能捕獲異常,並返回truefalse
  • printStackTrace :列印SQLException 的詳細錯誤資訊;
  • printWarnings :列印Connection 的警告資訊;
  • rollback :回滾操作,忽略null;
  • rollbackAndClose :回滾操作並關閉,忽略null;
  • rollbackAndCloseQuietly :回滾操作並關閉,忽略null、SQLException

2.org.apache.commons.dbutils.QueryRunner (來源:http://blog.csdn.net/inkfish)

  • batch :執行成批的INSERT、UPDATE、DELETE操作;
  • fillStatement :用Object[] 或JavaBean的值填充PreparedStatement 中的佔位符;
  • query :執行查詢操作(StatementPreparedStatement 均可),並用ResultSetHandler 來處理ResultSet
  • update :執行INSERT或UPDATE操作(StatementPreparedStatement 均可)。

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 是指定的列值,第二個MapString 是列名;
  • 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() 處理。(來源:http://blog.csdn.net/inkfish)