亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

2)連接對象工作原理

【1】無連接池

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

【2】有連接池

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

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

  • 官方(sun)提供的數(shù)據(jù)庫連接池接口,由第三方組織實現(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()獲取登錄超時時間。
setLoginTimeout(int seconds)設(shè)置登錄超時時間。
getLogWriter()獲取一個PrintWriter,用于將日志消息寫入。
setLogWriter(PrintWriter out)設(shè)置一個PrintWriter,用于將日志消息寫入。
unwrap(Class iface)將DataSource轉(zhuǎn)換為指定接口的實現(xiàn)對象。
isWrapperFor(Class<?> iface)判斷是否DataSource實現(xiàn)了指定接口。
getLoginTimeout()獲取登錄超時時間。
setLoginTimeout(int seconds)設(shè)置登錄超時時間。
getLogWriter()獲取一個PrintWriter,用于將日志消息寫入。
setLogWriter(PrintWriter out)設(shè)置一個PrintWriter,用于將日志消息寫入。
unwrap(Class iface)將DataSource轉(zhuǎn)換為指定接口的實現(xiàn)對象。
isWrapperFor(Class<?> iface)判斷是否DataSource實現(xiàn)了指定接口。

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

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

【1】 Druid(德魯伊)

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

【2】 Hikari(追光者)

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

運行SpringBoot項目的一個測試?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ù)庫連接池的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)Mybatis 數(shù)據(jù)庫連接池內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • MyBatis輸入映射和輸出映射實例詳解

    MyBatis輸入映射和輸出映射實例詳解

    mapper.xml是我們配置操作數(shù)據(jù)庫的sql語句的地方.這篇文章主要介紹了MyBatis輸入映射和輸出映射實例詳解,需要的朋友可以參考下
    2017-02-02
  • SpringDataJpa多表操作的實現(xiàn)

    SpringDataJpa多表操作的實現(xiàn)

    開發(fā)過程中會有很多多表的操作,他們之間有著各種關(guān)系,本文主要介紹了SpringDataJpa多表操作的實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Java9中對集合類擴(kuò)展的of方法解析

    Java9中對集合類擴(kuò)展的of方法解析

    這篇文章主要介紹了Java9 中對集合類擴(kuò)展的of方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • java統(tǒng)計文件中每個字符出現(xiàn)的個數(shù)

    java統(tǒng)計文件中每個字符出現(xiàn)的個數(shù)

    這篇文章主要為大家詳細(xì)介紹了java統(tǒng)計文件中每個字符出現(xiàn)的個數(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • Spark SQL 編程初級實踐詳解

    Spark SQL 編程初級實踐詳解

    這篇文章主要為大家介紹了Spark SQL 編程初級實踐詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Java創(chuàng)建刪除文件和目錄的方法(推薦)

    Java創(chuàng)建刪除文件和目錄的方法(推薦)

    這篇文章主要介紹了java創(chuàng)建刪除文件和目錄的方法,創(chuàng)建和刪除文件目錄常用的是file類的方法,具體內(nèi)容詳情大家參考下本文
    2018-05-05
  • Java解決xss轉(zhuǎn)義導(dǎo)致轉(zhuǎn)碼的問題

    Java解決xss轉(zhuǎn)義導(dǎo)致轉(zhuǎn)碼的問題

    跨站腳本攻擊XSS是最普遍的Web應(yīng)用安全漏洞,本文主要介紹了Java解決xss轉(zhuǎn)義導(dǎo)致轉(zhuǎn)碼的問題,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • 基于JVM 調(diào)優(yōu)的技巧總結(jié)分析

    基于JVM 調(diào)優(yōu)的技巧總結(jié)分析

    本篇文章是對JVM 調(diào)優(yōu)的技巧進(jìn)行了總結(jié)和分析。需要的朋友參考下
    2013-05-05
  • 使用Java實現(xiàn)一個能保留計算過程的計算器

    使用Java實現(xiàn)一個能保留計算過程的計算器

    計算器是我們?nèi)粘I钪谐S玫墓ぞ咧?它能夠進(jìn)行基本的數(shù)學(xué)運算,如加法、減法、乘法和除法,而在設(shè)計一個計算器時,我們可以通過使用Java編程語言來實現(xiàn)一個簡單的控制臺計算器,并且讓它能夠保留計算過程,文中有詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-11-11
  • maven的三種工程pom、jar、war的區(qū)別

    maven的三種工程pom、jar、war的區(qū)別

    這篇文章主要介紹了maven的三種工程pom、jar、war的區(qū)別,詳細(xì)的介紹pom、jar、war和區(qū)別,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11

最新評論