了解QueryRunner之前要先了解為什么要使用它,它從何處來,為什么而存在。
其實這個是dbutils中的一個方法
什么是dbutils
它的出現就是封裝了jdbc的代碼,開發dao層代碼的簡單框架
框架的作用就是為你完成一些工作
dbutils是由apache公司提供的
為什么使用dbutils
在它出現之前在dao層中使用的技術是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<T> rsh, Object... params) QueryRunner(DataSource ds) update(String sql, Object... params) query(String sql, ResultSetHandler<T> rsh, Object... params)
(3)ResultSetHandle:封裝數據的策略對象------將封裝結果集中的數據,轉換到另一個對象
策略:封裝數據到對象的方式(示例:將數據庫保存在User、保存到數組、保存到集合)
方法介紹:handle(ResultSet rs)
備注:詳解參考ResultSetHandle實現類
四:Dbutils快速入門
使用Dbutils注意事項:
(1)需要導入的jar包:①MySql驅動 ②c3p0包 ③DbUtils包
(2)添加c3p0配置文件
(3)可以自行添加一個JDBCUtils工具類:用來獲取c3p0連接池對象
c3p0和QueryRunner的結合使用:
2.1:首先導包,如下所示的包;
c3p0-0.9.1.2.jar
commons-dbutils-1.6.jar
mysql-connector-java-5.1.12-bin.jar
2.2:當然導包之前你需要創建好數據庫和數據表哦!~~~
在src目錄下面記住配置c3p0-config.xml文件
<dependency> <groupId>commons-dbutils</groupId> <artifactId>commons-dbutils</artifactId> <version>1.6</version> </dependency>