JAVA使用DBUtils操作數(shù)據(jù)庫
摘要:本文主要學(xué)習(xí)了如何使用DBUtils在Java代碼中更方便的操作數(shù)據(jù)庫。
概述
DBUtils是Java編程中的數(shù)據(jù)庫操作實用工具,小巧簡單實用。
DBUtils封裝了對JDBC的操作,簡化了JDBC操作,可以少寫代碼。
使用
準(zhǔn)備
如果需要使用DBUtils工具類,需要導(dǎo)包:
commons-dbutils-1.7.jar
DBUtils封裝了在建立連接后對數(shù)據(jù)庫的操作,主要有三個核心功能:
1)QueryRunner類提供對SQL語句操作的API。
2)ResultSetHandler接口用于定義查詢操作后,如何封裝結(jié)果集。
3)DBUtils工具類定義了關(guān)閉資源與事務(wù)處理的方法。
常用方法
構(gòu)造方法
提供了帶數(shù)據(jù)源和不帶數(shù)據(jù)源的兩種構(gòu)造方法。
public QueryRunner();// 不提供數(shù)據(jù)源,需要手動維護(hù)Connection。 public QueryRunner(DataSource ds);// 提供數(shù)據(jù)源,DbUtils底層自動維護(hù)連接Connection。
查詢操作
支持執(zhí)行查詢操作。
public <T> T query(Connection conn, String sql, ResultSetHandler<T> rsh); public <T> T query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params); public <T> T query(String sql, ResultSetHandler<T> rsh); public <T> T query(String sql, ResultSetHandler<T> rsh, Object... params);
更新操作
支持執(zhí)行增加、修改、刪除操作。
public int update(Connection conn, String sql); public int update(Connection conn, String sql, Object param); public int update(Connection conn, String sql, Object... params); public int update(String sql); public int update(String sql, Object param); public int update(String sql, Object... params);
增加操作
支持執(zhí)行增加操作,可以返回增加的數(shù)據(jù)。
public <T> T insert(Connection conn, String sql, ResultSetHandler<T> rsh); public <T> T insert(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params); public <T> T insert(String sql, ResultSetHandler<T> rsh); public <T> T insert(String sql, ResultSetHandler<T> rsh, Object... params);
批量執(zhí)行
支持批量執(zhí)行增加、修改、刪除操作。
public int[] batch(Connection conn, String sql, Object[][] params); public int[] batch(String sql, Object[][] params);
存儲過程
支持執(zhí)行存錯過程語句,也支持沒有存儲過程的語句,但沒有存錯過程的語句不建議調(diào)用這個方法。
public int execute(Connection conn, String sql, Object... params); public int execute(String sql, Object... params); public <T> List<T> execute(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params); public <T> List<T> execute(String sql, ResultSetHandler<T> rsh, Object... params);
ResultSetHandler接口說明
- BeanHandler:將結(jié)果集中的第一行數(shù)據(jù)封裝到一個對應(yīng)的JavaBean實例中。
- BeanListHandler:將結(jié)果集中的每一行數(shù)據(jù)都封裝到一個對應(yīng)的JavaBean實例中,再存放到List里。
- ArrayHandler:將結(jié)果集中的第一行數(shù)據(jù)轉(zhuǎn)成對象數(shù)組。
- ArrayListHandler:將結(jié)果集中的每一行數(shù)據(jù)都轉(zhuǎn)成一個對象數(shù)組,再存放到List中。
- MapHandler:將結(jié)果集中的第一行數(shù)據(jù)封裝到一個Map里,key是列名,value就是對應(yīng)的值。
- MapListHandler:將結(jié)果集中的每一行數(shù)據(jù)都封裝到一個Map里,再存放到List
- ScalarHandler:將結(jié)果集第一行的某一列放到某個對象中。
關(guān)閉資源與事務(wù)處理
是否自動關(guān)閉Connection資源是由創(chuàng)建QueryRunner時使用的構(gòu)造器決定的:
1)如果傳入了數(shù)據(jù)源,那么Connection會自動關(guān)閉,在調(diào)用增刪查改的方法時就不需要傳入Connection。這種方式會導(dǎo)致每次執(zhí)行SQL都會建立新連接,在SQL執(zhí)行完畢后會斷開連接,無法通過Connection控制事務(wù)。
2)如果沒有傳入數(shù)據(jù)源,那么Connection需要手動關(guān)閉,在調(diào)用增刪查改方法時需要手動傳入Connection。這種方式在執(zhí)行SQL時不會獲取新連接,也不會在SQL執(zhí)行完畢后斷開連接,可以根據(jù)傳入的Connection控制事務(wù)。
以上就是JAVA使用DBUtils操作數(shù)據(jù)庫的詳細(xì)內(nèi)容,更多關(guān)于DBUtils操作數(shù)據(jù)庫的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
詳解SpringCloud服務(wù)認(rèn)證(JWT)
本篇文章主要介紹了SpringCloud服務(wù)認(rèn)證(JWT),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01
解決SpringBoot配置文件項目重啟出現(xiàn)亂碼的問題
最近在創(chuàng)建了SpringBoot項目后往配置文件中寫了相關(guān)的系統(tǒng)配置,并且在上面加了中文注釋,但是在重啟項目或開機(jī)重啟后遇到了注釋亂碼的情況,下面這篇文章主要給大家介紹一下如何解決SpringBoot配置文件項目重啟出現(xiàn)亂碼的問題,需要的朋友可以參考下2023-06-06
spring boot與spring mvc的區(qū)別及功能介紹
這篇文章主要介紹了spring boot與spring mvc的區(qū)別是什么以及spring boot和spring mvc功能介紹,感興趣的朋友一起看看吧2018-02-02

