1. 程式人生 > 程式設計 >JAVA使用DBUtils操作資料庫

JAVA使用DBUtils操作資料庫

摘要:本文主要學習瞭如何使用DBUtils在Java程式碼中更方便的操作資料庫。

概述

DBUtils是Java程式設計中的資料庫操作實用工具,小巧簡單實用。

DBUtils封裝了對JDBC的操作,簡化了JDBC操作,可以少寫程式碼。

使用

準備

如果需要使用DBUtils工具類,需要導包:

commons-dbutils-1.7.jar

DBUtils封裝了在建立連線後對資料庫的操作,主要有三個核心功能:

1)QueryRunner類提供對SQL語句操作的API。

2)ResultSetHandler介面用於定義查詢操作後,如何封裝結果集。

3)DBUtils工具類定義了關閉資源與事務處理的方法。

常用方法

構造方法

提供了帶資料來源和不帶資料來源的兩種構造方法。

 public QueryRunner();// 不提供資料來源,需要手動維護Connection。
 public QueryRunner(DataSource ds);// 提供資料來源,DbUtils底層自動維護連線Connection。

查詢操作

支援執行查詢操作。

 public <T> T query(Connection conn,String sql,ResultSetHandler<T> rsh);
 public <T> T query(Connection conn,ResultSetHandler<T> rsh,Object... params);
 public <T> T query(String sql,ResultSetHandler<T> rsh);
 public <T> T query(String sql,Object... params);

更新操作

支援執行增加、修改、刪除操作。

 public int update(Connection conn,String sql);
 public int update(Connection conn,Object param);
 public int update(Connection conn,Object... params);
 public int update(String sql);
 public int update(String sql,Object param);
 public int update(String sql,Object... params);

增加操作

支援執行增加操作,可以返回增加的資料。

 public <T> T insert(Connection conn,ResultSetHandler<T> rsh);
 public <T> T insert(Connection conn,Object... params);
 public <T> T insert(String sql,ResultSetHandler<T> rsh);
 public <T> T insert(String sql,Object... params);

批量執行

支援批量執行增加、修改、刪除操作。

 public int[] batch(Connection conn,Object[][] params);
 public int[] batch(String sql,Object[][] params);

儲存過程

支援執行存錯過程語句,也支援沒有儲存過程的語句,但沒有存錯過程的語句不建議呼叫這個方法。

 public int execute(Connection conn,Object... params);
 public int execute(String sql,Object... params);
 public <T> List<T> execute(Connection conn,Object... params);
 public <T> List<T> execute(String sql,Object... params);

ResultSetHandler介面說明

  • BeanHandler:將結果集中的第一行資料封裝到一個對應的JavaBean例項中。
  • BeanListHandler:將結果集中的每一行資料都封裝到一個對應的JavaBean例項中,再存放到List裡。
  • ArrayHandler:將結果集中的第一行資料轉成物件陣列。
  • ArrayListHandler:將結果集中的每一行資料都轉成一個物件陣列,再存放到List中。
  • MapHandler:將結果集中的第一行資料封裝到一個Map裡,key是列名,value就是對應的值。
  • MapListHandler:將結果集中的每一行資料都封裝到一個Map裡,再存放到List
  • ScalarHandler:將結果集第一行的某一列放到某個物件中。

關閉資源與事務處理

是否自動關閉Connection資源是由建立QueryRunner時使用的構造器決定的:

1)如果傳入了資料來源,那麼Connection會自動關閉,在呼叫增刪查改的方法時就不需要傳入Connection。這種方式會導致每次執行SQL都會建立新連線,在SQL執行完畢後會斷開連線,無法通過Connection控制事務。

2)如果沒有傳入資料來源,那麼Connection需要手動關閉,在呼叫增刪查改方法時需要手動傳入Connection。這種方式在執行SQL時不會獲取新連線,也不會在SQL執行完畢後斷開連線,可以根據傳入的Connection控制事務。

以上就是JAVA使用DBUtils操作資料庫的詳細內容,更多關於DBUtils操作資料庫的資料請關注我們其它相關文章!