欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

概述

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

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

使用

準(zhǔn)備

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

commons-dbutils-1.7.jar

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

1)QueryRunner類提供對(duì)SQL語(yǔ)句操作的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ǔ)過(guò)程

支持執(zhí)行存錯(cuò)過(guò)程語(yǔ)句,也支持沒(méi)有存儲(chǔ)過(guò)程的語(yǔ)句,但沒(méi)有存錯(cuò)過(guò)程的語(yǔ)句不建議調(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接口說(shuō)明

  • 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ì)斷開(kāi)連接,無(wú)法通過(guò)Connection控制事務(wù)。

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

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

相關(guān)文章

  • java精度計(jì)算代碼 java指定精確小數(shù)位

    java精度計(jì)算代碼 java指定精確小數(shù)位

    這篇文章主要為大家詳細(xì)介紹了java精度計(jì)算代碼,java指定精確小數(shù)位,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • 使用Maven Archetype插件構(gòu)建Maven工程原型模板的實(shí)例

    使用Maven Archetype插件構(gòu)建Maven工程原型模板的實(shí)例

    下面小編就為大家分享一篇使用Maven Archetype插件構(gòu)建Maven工程原型模板的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助
    2017-12-12
  • Java多線程 原子性操作類的使用

    Java多線程 原子性操作類的使用

    這篇文章主要介紹了Java多線程 原子性操作類的使用,在java5以后,我們接觸到了線程原子性操作,也就是在修改時(shí)我們只需要保證它的那個(gè)瞬間是安全的即可,經(jīng)過(guò)相應(yīng)的包裝后可以再處理對(duì)象的并發(fā)修改,本文總結(jié)一下Atomic系列的類的使用方法,下面一起進(jìn)入文章了解詳細(xì)內(nèi)容
    2021-10-10
  • 深入解讀 Spring Boot 生態(tài)之功能、組件與優(yōu)勢(shì)

    深入解讀 Spring Boot 生態(tài)之功能、組件與優(yōu)勢(shì)

    本文將深入剖析 Spring Boot 的生態(tài)體系,包括其核心功能、生態(tài)組件以及在不同場(chǎng)景中的應(yīng)用,并附上一張 Spring Boot 生態(tài)系統(tǒng)圖,幫助開(kāi)發(fā)者更直觀地理解 Spring Boot 的強(qiáng)大之處,感興趣的朋友一起看看吧
    2024-11-11
  • springboot+springsecurity如何實(shí)現(xiàn)動(dòng)態(tài)url細(xì)粒度權(quán)限認(rèn)證

    springboot+springsecurity如何實(shí)現(xiàn)動(dòng)態(tài)url細(xì)粒度權(quán)限認(rèn)證

    這篇文章主要介紹了springboot+springsecurity如何實(shí)現(xiàn)動(dòng)態(tài)url細(xì)粒度權(quán)限認(rèn)證的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java11中的新增字符串APIs使用實(shí)例探究

    Java11中的新增字符串APIs使用實(shí)例探究

    這篇文章主要為大家介紹了Java11中的新增字符串APIs使用實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • java中response對(duì)象用法實(shí)例分析

    java中response對(duì)象用法實(shí)例分析

    這篇文章主要介紹了java中response對(duì)象用法,結(jié)合實(shí)例形式分析了Java中response對(duì)象的功能及具體使用技巧,需要的朋友可以參考下
    2015-12-12
  • Java使用Sftp和Ftp實(shí)現(xiàn)對(duì)文件的上傳和下載

    Java使用Sftp和Ftp實(shí)現(xiàn)對(duì)文件的上傳和下載

    這篇文章主要介紹了Java使用Sftp和Ftp實(shí)現(xiàn)對(duì)文件的上傳和下載,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • EJB基礎(chǔ)知識(shí)(入門必看)

    EJB基礎(chǔ)知識(shí)(入門必看)

    下面小編就為大家?guī)?lái)一篇EJB基礎(chǔ)知識(shí)(入門必看)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • SpringData?JPA的常用語(yǔ)法匯總

    SpringData?JPA的常用語(yǔ)法匯總

    Spring Data JPA是Spring基于ORM框架、JPA規(guī)范的基礎(chǔ)上封裝的一套JPA應(yīng)用框架,可使開(kāi)發(fā)者用極簡(jiǎn)的代碼即可實(shí)現(xiàn)對(duì)數(shù)據(jù)的訪問(wèn)和操作,下面這篇文章主要給大家介紹了關(guān)于SpringData?JPA的常用語(yǔ)法,需要的朋友可以參考下
    2022-06-06

最新評(píng)論