最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA使用DBUtils操作數(shù)據(jù)庫

 更新時(shí)間:2020年07月02日 10:17:42   作者:鯊貓  
這篇文章主要介紹了JAVA使用DBUtils操作數(shù)據(jù)庫的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家學(xué)習(xí)JAVA,感興趣的朋友可以了解下

摘要:本文主要學(xué)習(xí)了如何使用DBUtils在Java代碼中更方便的操作數(shù)據(jù)庫。

概述

DBUtils是Java編程中的數(shù)據(jù)庫操作實(shí)用工具,小巧簡(jiǎn)單實(shí)用。

DBUtils封裝了對(duì)JDBC的操作,簡(jiǎn)化了JDBC操作,可以少寫代碼。

使用

準(zhǔn)備

如果需要使用DBUtils工具類,需要導(dǎo)包:

commons-dbutils-1.7.jar

DBUtils封裝了在建立連接后對(duì)數(shù)據(jù)庫的操作,主要有三個(gè)核心功能:

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

2)ResultSetHandler接口用于定義查詢操作后,如何封裝結(jié)果集。

3)DBUtils工具類定義了關(guān)閉資源與事務(wù)處理的方法。

常用方法

構(gòu)造方法

提供了帶數(shù)據(jù)源和不帶數(shù)據(jù)源的兩種構(gòu)造方法。

 public QueryRunner();// 不提供數(shù)據(jù)源,需要手動(dòng)維護(hù)Connection。
 public QueryRunner(DataSource ds);// 提供數(shù)據(jù)源,DbUtils底層自動(dòng)維護(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);

存儲(chǔ)過程

支持執(zhí)行存錯(cuò)過程語句,也支持沒有存儲(chǔ)過程的語句,但沒有存錯(cuò)過程的語句不建議調(diào)用這個(gè)方法。

 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ù)封裝到一個(gè)對(duì)應(yīng)的JavaBean實(shí)例中。
  • BeanListHandler:將結(jié)果集中的每一行數(shù)據(jù)都封裝到一個(gè)對(duì)應(yīng)的JavaBean實(shí)例中,再存放到List里。
  • ArrayHandler:將結(jié)果集中的第一行數(shù)據(jù)轉(zhuǎn)成對(duì)象數(shù)組。
  • ArrayListHandler:將結(jié)果集中的每一行數(shù)據(jù)都轉(zhuǎn)成一個(gè)對(duì)象數(shù)組,再存放到List中。
  • MapHandler:將結(jié)果集中的第一行數(shù)據(jù)封裝到一個(gè)Map里,key是列名,value就是對(duì)應(yīng)的值。
  • MapListHandler:將結(jié)果集中的每一行數(shù)據(jù)都封裝到一個(gè)Map里,再存放到List
  • ScalarHandler:將結(jié)果集第一行的某一列放到某個(gè)對(duì)象中。

關(guān)閉資源與事務(wù)處理

是否自動(dòng)關(guān)閉Connection資源是由創(chuàng)建QueryRunner時(shí)使用的構(gòu)造器決定的:

1)如果傳入了數(shù)據(jù)源,那么Connection會(huì)自動(dòng)關(guān)閉,在調(diào)用增刪查改的方法時(shí)就不需要傳入Connection。這種方式會(huì)導(dǎo)致每次執(zhí)行SQL都會(huì)建立新連接,在SQL執(zhí)行完畢后會(huì)斷開連接,無法通過Connection控制事務(wù)。

2)如果沒有傳入數(shù)據(jù)源,那么Connection需要手動(dòng)關(guān)閉,在調(diào)用增刪查改方法時(shí)需要手動(dòng)傳入Connection。這種方式在執(zhí)行SQL時(shí)不會(huì)獲取新連接,也不會(huì)在SQL執(zhí)行完畢后斷開連接,可以根據(jù)傳入的Connection控制事務(wù)。

以上就是JAVA使用DBUtils操作數(shù)據(jù)庫的詳細(xì)內(nèi)容,更多關(guān)于DBUtils操作數(shù)據(jù)庫的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java 二分法檢索算法代碼實(shí)現(xiàn)詳解

    Java 二分法檢索算法代碼實(shí)現(xiàn)詳解

    這篇文章主要介紹了Java 二分法檢索算法代碼實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • IDEA使用JDK21控制臺(tái)亂碼問題及解決

    IDEA使用JDK21控制臺(tái)亂碼問題及解決

    在使用IntelliJ IDEA開發(fā)時(shí),經(jīng)常會(huì)遇到因編碼不一致導(dǎo)致的中文亂碼問題,特別是在JDK18以后的版本中,由于JDK內(nèi)部默認(rèn)編碼格式變?yōu)镚BK,而項(xiàng)目設(shè)置為UTF-8后,會(huì)導(dǎo)致亂碼問題,本文介紹了幾個(gè)步驟來解決這一問題
    2024-10-10
  • Spring?Data?JPA映射自定義實(shí)體類操作

    Spring?Data?JPA映射自定義實(shí)體類操作

    這篇文章主要介紹了Spring?Data?JPA映射自定義實(shí)體類操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java單例模式的6種實(shí)現(xiàn)方式詳解

    Java單例模式的6種實(shí)現(xiàn)方式詳解

    這篇文章主要介紹了Java單例模式的6種實(shí)現(xiàn)方式的相關(guān)資料,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-09-09
  • 關(guān)于線程池你不得不知道的一些設(shè)置

    關(guān)于線程池你不得不知道的一些設(shè)置

    這篇文章主要介紹了關(guān)于線程池你不得不知道的一些設(shè)置,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>
    2019-04-04
  • Java多線程中關(guān)于join方法的使用實(shí)例解析

    Java多線程中關(guān)于join方法的使用實(shí)例解析

    本文通過實(shí)例代碼給大家實(shí)例介紹了Java多線程中關(guān)于join方法的使用,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下
    2017-01-01
  • 詳解SpringCloud服務(wù)認(rèn)證(JWT)

    詳解SpringCloud服務(wù)認(rèn)證(JWT)

    本篇文章主要介紹了SpringCloud服務(wù)認(rèn)證(JWT),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • 解決SpringBoot配置文件項(xiàng)目重啟出現(xiàn)亂碼的問題

    解決SpringBoot配置文件項(xiàng)目重啟出現(xiàn)亂碼的問題

    最近在創(chuàng)建了SpringBoot項(xiàng)目后往配置文件中寫了相關(guān)的系統(tǒng)配置,并且在上面加了中文注釋,但是在重啟項(xiàng)目或開機(jī)重啟后遇到了注釋亂碼的情況,下面這篇文章主要給大家介紹一下如何解決SpringBoot配置文件項(xiàng)目重啟出現(xiàn)亂碼的問題,需要的朋友可以參考下
    2023-06-06
  • spring boot與spring mvc的區(qū)別及功能介紹

    spring boot與spring mvc的區(qū)別及功能介紹

    這篇文章主要介紹了spring boot與spring mvc的區(qū)別是什么以及spring boot和spring mvc功能介紹,感興趣的朋友一起看看吧
    2018-02-02
  • 解決IDEA項(xiàng)目project包目錄消失的問題

    解決IDEA項(xiàng)目project包目錄消失的問題

    這篇文章主要介紹了解決IDEA項(xiàng)目project包目錄消失的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02

最新評(píng)論

麻栗坡县| 平乐县| 航空| 新晃| 乐山市| 保定市| 盘锦市| 康保县| 广安市| 洪洞县| 南江县| 丹江口市| 旬阳县| 赣州市| 马关县| 新密市| 乌什县| 建湖县| 来宾市| 郸城县| 上犹县| 济南市| 凤庆县| 项城市| 凌源市| 吉木萨尔县| 旺苍县| 岳阳市| 漯河市| 洮南市| 汪清县| 麦盖提县| 囊谦县| 南部县| 北京市| 塔城市| 黎平县| 连平县| 泊头市| 贵阳市| 砀山县|