Java操作資料庫——使用DBUtils
摘要:本文主要學習了如何使用DBUtils在Java代碼中更方便的操作資料庫,
概述
DBUtils是Java編程中的資料庫操作實用工具,小巧簡單實用,
DBUtils封裝了對JDBC的操作,簡化了JDBC操作,可以少寫代碼,
使用
準備
如果需要使用DBUtils工具類,需要導包:
1 commons-dbutils-1.7.jar
DBUtils封裝了在建立連接后對資料庫的操作,主要有三個核心功能:
1)QueryRunner類提供對SQL陳述句操作的API,
2)ResultSetHandler介面用于定義查詢操作后,如何封裝結果集,
3)DBUtils工具類定義了關閉資源與事務處理的方法,
常用方法
構造方法
提供了帶資料源和不帶資料源的兩種構造方法,
1 public QueryRunner();// 不提供資料源,需要手動維護Connection, 2 public QueryRunner(DataSource ds);// 提供資料源,DbUtils底層自動維護連接Connection,
查詢操作
支持執行查詢操作,
1 public <T> T query(Connection conn, String sql, ResultSetHandler<T> rsh); 2 public <T> T query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params); 3 public <T> T query(String sql, ResultSetHandler<T> rsh); 4 public <T> T query(String sql, ResultSetHandler<T> rsh, Object... params);
更新操作
支持執行增加、修改、洗掉操作,
1 public int update(Connection conn, String sql); 2 public int update(Connection conn, String sql, Object param); 3 public int update(Connection conn, String sql, Object... params); 4 public int update(String sql); 5 public int update(String sql, Object param); 6 public int update(String sql, Object... params);
增加操作
支持執行增加操作,可以回傳增加的資料,
1 public <T> T insert(Connection conn, String sql, ResultSetHandler<T> rsh); 2 public <T> T insert(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params); 3 public <T> T insert(String sql, ResultSetHandler<T> rsh); 4 public <T> T insert(String sql, ResultSetHandler<T> rsh, Object... params);
批量執行
支持批量執行增加、修改、洗掉操作,
1 public int[] batch(Connection conn, String sql, Object[][] params); 2 public int[] batch(String sql, Object[][] params);
存盤程序
支持執行存錯程序陳述句,也支持沒有存盤程序的陳述句,但沒有存錯程序的陳述句不建議呼叫這個方法,
1 public int execute(Connection conn, String sql, Object... params); 2 public int execute(String sql, Object... params); 3 public <T> List<T> execute(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params); 4 public <T> List<T> execute(String sql, ResultSetHandler<T> rsh, 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控制事務,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/153790.html
標籤:Java
