Dbutils

轉載自:http://www.cnblogs.com/CQY1183344265/p/5854418.html

一:Dbutils是什麼?(當我們很難理解一個東西的官方解釋的時候,就讓我們記住它的作用)
Dbutils:主要是封裝了JDBC的代碼,簡化dao層的操作。
作用:幫助java程序員,開發Dao層代碼的簡單框架。
框架的作用:幫助程序員,提高程序的開發效率。
出生:Dbutils是由Apache公司提供。

二:爲什麼需要Dbutils ?
在使用Dbutils 之前,我們Dao層使用的技術是JDBC,那麼分析一下JDBC的弊端:
(1)數據庫鏈接對象、sql語句操作對象,封裝結果集對象,這三大對象會重複定義
(2)封裝數據的代碼重複,而且操作複雜,代碼量大
(3)釋放資源的代碼重複
結果:(1)程序員在開發的時候,有大量的重複勞動。(2)開發的週期長,效率低

三:Dbutils三個核心類介紹:
1:DbUtils:連接數據庫對象—-jdbc輔助方法的集合類,線程安全
構造方法:DbUtils()
作用:控制連接,控制書屋,控制驅動加載額一個類。

2:QueryRunner:SQL語句的操作對象,可以設置查詢結果集的封裝策略,線程安全。
構造方法:
(1)QueryRunner():創建一個與數據庫無關的QueryRunner對象,後期再操作數據庫的會後,需要手動給一個Connection對象,它可以手動控制事務。
Connection.setAutoCommit(false); 設置手動管理事務
Connection.commit(); 提交事務

(2)QueryRunner(DataSource ds):創建一個與數據庫關聯的queryRunner對象,後期再操作數據庫的時候,不需要Connection對象,自動管理事務。
DataSource:數據庫連接池對象。

構造函數與增刪改查方法的組合:
QueryRunner()
update(Connection conn, String sql, Object… params)
query(Connection conn, String sql, ResultSetHandler rsh, Object… params)

QueryRunner(DataSource ds)
update(String sql, Object… params)
query(String sql, ResultSetHandler rsh, Object… params)

(3)ResultSetHandle:封裝數據的策略對象——將封裝結果集中的數據,轉換到另一個對象
策略:封裝數據到對象的方式(示例:將數據庫保存在User、保存到數組、保存到集合)
方法介紹:handle(ResultSet rs)
A: DBUtils工具類結果集處理的方式
a: QueryRunner實現查詢操作
query(Connection conn, String sql, ResultSetHandler rsh, Object… params) ,用來完成表數據的查詢操作
b: ResultSetHandler結果集處理類
①ArrayHandler 將結果集中的第一條記錄封裝到一個Object[]數組中,數組中的每一個元素就是這條記錄中的每一個字段的值
②ArrayListHandler 將結果集中的每一條記錄都封裝到一個Object[]數組中,將這些數組在封裝到List集合中。
③BeanHandler 將結果集中第一條記錄封裝到一個指定的javaBean中。
④BeanListHandler 將結果集中每一條記錄封裝到指定的javaBean中,將這些javaBean在封裝到List集合中
⑤ColumnListHandler 將結果集中指定的列的字段值,封裝到一個List集合中
⑥ScalarHandler 它是用於單數據。例如select count(*) from 表操作。
⑦MapHandler 將結果集第一行封裝到Map集合中,Key 列名, Value 該列數據
⑧MapListHandler 將結果集第一行封裝到Map集合中,Key 列名, Value 該列數據,Map集合存儲到List集合
常用的是BeanHandlerBeanListHandlerScalarHandler

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章