Apache Commons DbUtils 1.5 發布

openkk 12年前發布 | 13K 次閱讀 DbUtils

DbUtils 剛發布的 1.5 版本改進記錄包括:

Bug
  [DBUTILS-73] - .BasicRowProcessor.CaseInsensitiveHashMap uses default Locale for toLowerCase
  [DBUTILS-77] - "drop view" does not work from QueryRunner.update with SQLServer JDBC drivers. Same SQL works with a PreparedStatement just fine.
  [DBUTILS-93] - Source assembly artifact fails to build a site because of missing pmd-ruleset.xml

改進
  [DBUTILS-66] - ScalarHandler, ColumnHandler and KeyedHandler are missing generics
  [DBUTILS-84] - BeanProcessor method processColumn should take SQLXML in consideration
  [DBUTILS-91] - Enhance BasicRowProcessor to have row mapping easier to configure

新特性
  [DBUTILS-67] - Add a BeanMapHandler
  [DBUTILS-76] - New handler StringColumnListHandler

任務
  [DBUTILS-88] - Make AsyncQueryRunner be a decorator around a QueryRunner

測試
  [DBUTILS-94] - Provide test coverage for org.apache.commons.dbutils.DbUtils

    Common Dbutils是操作數據庫的組件,對傳統操作數據庫的類進行二次封裝,可以把結果集轉化成List。

補充一下,傳統操作數據庫的類指的是JDBC(java database connection:java數據庫連接,java的數據庫操作的基礎API。)。

特色:

1.對于數據表的讀操作,他可以把結果轉換成List,Array,Set等java集合,便于程序員操作;

2.對于數據表的寫操作,也變得很簡單(只需寫sql語句)

3.可以使用數據源,使用JNDI,數據庫連接池等技術來優化性能--重用已經構建好的數據庫連接對象,而不像php,asp那樣,費時費力的不斷重復的構建和析構這樣的對象。

DBUtils是java編程中的數據庫操作實用工具,小巧簡單實用, 給出一小段代碼看看DbUtils是怎么用的:

// Create a ResultSetHandler implementation to convert the
// first row into an Object[].
ResultSetHandler<Object[]> h = new ResultSetHandler<Object[]>() {
    public Object[] handle(ResultSet rs) throws SQLException {
        if (!rs.next()) {
            return null;
        }

    ResultSetMetaData meta = rs.getMetaData();
    int cols = meta.getColumnCount();
    Object[] result = new Object[cols];

    for (int i = 0; i < cols; i++) {
        result[i] = rs.getObject(i + 1);
    }

    return result;
}

};

// Create a QueryRunner that will use connections from // the given DataSource QueryRunner run = new QueryRunner(dataSource);

// Execute the query and get the results back from the handler Object[] result = run.query( "SELECT * FROM Person WHERE name=?", h, "John Doe");

</pre>

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!