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

Mybatis 數(shù)據(jù)庫連接池的實(shí)現(xiàn)示例

 更新時(shí)間:2023年10月13日 09:41:01   作者:語言-逆行者  
在Java應(yīng)用程序中,與數(shù)據(jù)庫的連接是非常昂貴的,因此,當(dāng)我們使用MyBatis進(jìn)行數(shù)據(jù)操作時(shí),需要一個連接池來分配并管理這些連接,本文主要介紹了Mybatis 數(shù)據(jù)庫連接池的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下

1)數(shù)據(jù)庫連接池定義

  • 數(shù)據(jù)庫連接池是個容器,負(fù)責(zé)分配、管理數(shù)據(jù)庫連接(Connection)
  • 它允許應(yīng)用程序重復(fù)使用一個現(xiàn)有的數(shù)據(jù)庫連接,而不是再重新建立一個
  • 釋放空閑時(shí)間超過最大空閑時(shí)間的連接,來避免因?yàn)闆]有釋放連接而引起的數(shù)據(jù)庫連接遺漏。也就是,如果某個操作占用的連接超出了預(yù)定的時(shí)間,就會自動釋放連接。

2)連接對象工作原理

【1】無連接池

  • [1]每次執(zhí)行某個操作的時(shí)候,需要手動建立一個連接對象。
  • [2]再使用連接對象去訪問數(shù)據(jù)庫執(zhí)行相關(guān)的操作。
  • [3]當(dāng)應(yīng)用程序不再需要這個連接時(shí),它會關(guān)閉連接。
  • [4]如果應(yīng)用程序需要再次連接數(shù)據(jù)庫,它會重新創(chuàng)建一個新的數(shù)據(jù)庫連接。

【2】有連接池

  • [1]初始化連接池。在系統(tǒng)啟動時(shí),連接池會生成一定數(shù)量的數(shù)據(jù)庫連接,并將這些連接放入池中。
  • [2]獲取連接。當(dāng)應(yīng)用程序需要與數(shù)據(jù)庫進(jìn)行交互時(shí),它會從連接池中獲取一個可用的連接。
  • [3]使用連接。應(yīng)用程序使用連接進(jìn)行數(shù)據(jù)庫操作。
  • [4]釋放連接。當(dāng)應(yīng)用程序完成數(shù)據(jù)庫操作后,它會將連接返回給連接池,而不是將連接關(guān)閉。這樣可以避免頻繁地創(chuàng)建和銷毀連接,提高系統(tǒng)性能。
  • [5]銷毀連接。如果連接池中的連接長時(shí)間未被使用,連接池會將這些連接銷毀,以釋放系統(tǒng)資源。

3)標(biāo)準(zhǔn)接口DataSource

  • 官方(sun)提供的數(shù)據(jù)庫連接池接口,由第三方組織實(shí)現(xiàn)此接口。
  • 它定義了訪問數(shù)據(jù)庫的標(biāo)準(zhǔn)方法。這些方法包括從數(shù)據(jù)庫中檢索數(shù)據(jù)并將其返回到Java應(yīng)用程序,以及將數(shù)據(jù)寫回到數(shù)據(jù)庫中的能力。

DataSource接口提供以下方法:

方法描述
getConnection()獲取一個數(shù)據(jù)庫連接
getConnection(String username, String password)獲取一個帶有用戶名和密碼的數(shù)據(jù)庫連接。
getLoginTimeout()獲取登錄超時(shí)時(shí)間。
setLoginTimeout(int seconds)設(shè)置登錄超時(shí)時(shí)間。
getLogWriter()獲取一個PrintWriter,用于將日志消息寫入。
setLogWriter(PrintWriter out)設(shè)置一個PrintWriter,用于將日志消息寫入。
unwrap(Class iface)將DataSource轉(zhuǎn)換為指定接口的實(shí)現(xiàn)對象。
isWrapperFor(Class<?> iface)判斷是否DataSource實(shí)現(xiàn)了指定接口。
getLoginTimeout()獲取登錄超時(shí)時(shí)間。
setLoginTimeout(int seconds)設(shè)置登錄超時(shí)時(shí)間。
getLogWriter()獲取一個PrintWriter,用于將日志消息寫入。
setLogWriter(PrintWriter out)設(shè)置一個PrintWriter,用于將日志消息寫入。
unwrap(Class iface)將DataSource轉(zhuǎn)換為指定接口的實(shí)現(xiàn)對象。
isWrapperFor(Class<?> iface)判斷是否DataSource實(shí)現(xiàn)了指定接口。

4)常用的數(shù)據(jù)庫連接池

C3PO、 DBCP、Druid(德魯伊)、HIkari(追光者),主要介紹常用的最后兩個。

【1】 Druid(德魯伊)

  • 阿里巴巴開源的數(shù)據(jù)庫連接池項(xiàng)目
  • 功能強(qiáng)大,性能優(yōu)秀,是java語言最好的數(shù)據(jù)庫連接池之一

【2】 Hikari(追光者)

SpringBoot默認(rèn)自帶的連接池

運(yùn)行SpringBoot項(xiàng)目的一個測試?yán)?,可以得知是默認(rèn)使用Hikari連接池。

5)如何切換連接池?

pom.xml文件配置

在pom.xml配置文件中引入德魯伊的起步依賴

依賴坐標(biāo)如下:

<!--引入德魯伊的起步依賴-->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid-spring-boot-starter</artifactId>
			<version>1.2.8</version>
		</dependency>

刷新后還是不行的需要去application配置文件聲明一下type。在application.properties文件中加上type的配置信息:

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

測試切換成功

到此這篇關(guān)于Mybatis 數(shù)據(jù)庫連接池的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Mybatis 數(shù)據(jù)庫連接池內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • java后端如何實(shí)現(xiàn)防止接口重復(fù)提交

    java后端如何實(shí)現(xiàn)防止接口重復(fù)提交

    這篇文章主要介紹了java后端如何實(shí)現(xiàn)防止接口重復(fù)提交問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java 獲取當(dāng)前系統(tǒng)時(shí)間的三種方法

    Java 獲取當(dāng)前系統(tǒng)時(shí)間的三種方法

    這篇文章主要介紹了Java 獲取當(dāng)前系統(tǒng)時(shí)間的三種方法,幫助大家利用Java處理時(shí)間,感興趣的朋友可以了解下
    2020-10-10
  • Java經(jīng)典快排思想以及快排的改進(jìn)講解

    Java經(jīng)典快排思想以及快排的改進(jìn)講解

    今天小編就為大家分享一篇關(guān)于Java經(jīng)典快排思想以及快排的改進(jìn)講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • IDEA打開項(xiàng)目不顯示或者缺失項(xiàng)目文件目錄的解決方案

    IDEA打開項(xiàng)目不顯示或者缺失項(xiàng)目文件目錄的解決方案

    這篇文章主要介紹了IDEA打開項(xiàng)目不顯示或者缺失項(xiàng)目文件目錄的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • Spring jdbc具名參數(shù)使用方法詳解

    Spring jdbc具名參數(shù)使用方法詳解

    這篇文章主要介紹了Spring jdbc具名參數(shù)使用方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Java選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的使用詳解

    Java選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)的使用詳解

    循環(huán)結(jié)構(gòu)是指在程序中需要反復(fù)執(zhí)行某個功能而設(shè)置的一種程序結(jié)構(gòu)。它由循環(huán)體中的條件,判斷繼續(xù)執(zhí)行某個功能還是退出循環(huán),選擇結(jié)構(gòu)用于判斷給定的條件,根據(jù)判斷的結(jié)果判斷某些條件,根據(jù)判斷的結(jié)果來控制程序的流程
    2022-03-03
  • Spring @Value注解失效問題解決方案

    Spring @Value注解失效問題解決方案

    這篇文章主要介紹了Spring @Value注解失效問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • java ExecutorService使用方法詳解

    java ExecutorService使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了java ExecutorService使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • dubbo服務(wù)注冊到nacos的過程剖析

    dubbo服務(wù)注冊到nacos的過程剖析

    這篇文章主要為大家介紹了dubbo服務(wù)注冊到nacos的過程剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職極限
    2022-02-02
  • SpringCloud注冊中心之consul詳細(xì)講解使用方法

    SpringCloud注冊中心之consul詳細(xì)講解使用方法

    Consul是一款由HashiCorp公司開源的,用于服務(wù)治理的軟件,Spring Cloud Consul對其進(jìn)行了封裝,這篇文章主要介紹了springcloud組件consul服務(wù)治理,需要的朋友可以參考下
    2022-11-11

最新評論

汉中市| 汾西县| 乌兰县| 乡宁县| 科尔| 北京市| 拜城县| 大新县| 古丈县| 勃利县| 长阳| 灌阳县| 大余县| 白沙| 五原县| 龙州县| 密山市| 平昌县| 榆树市| 万山特区| 阿勒泰市| 泸州市| 鹤壁市| 武威市| 滨海县| 宁陕县| 肇东市| 东兴市| 孟村| 沅江市| 班玛县| 辽宁省| 阳新县| 惠水县| 汽车| 安吉县| 齐河县| 庆安县| 淮北市| 普陀区| 寻乌县|