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

jdbc中自帶MySQL?連接池實(shí)踐示例

 更新時(shí)間:2022年07月21日 12:01:38   作者:FunTester  
這篇文章主要為大家介紹了jdbc中自帶MySQL連接池實(shí)踐示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

在上期文章自定義 MySQL 連接池中,我提到了沒找到一個(gè)特別合適的 MySQL 連接池實(shí)現(xiàn),所以自己寫了一個(gè)基于通用池化框架commons-pool2的 MySQL 連接池,并且模仿了 Go 語言的gorm框架設(shè)計(jì)思路,把的操作不暴露給用戶,只處理用戶發(fā)來的 SQL 語句的思路,封裝了一個(gè)com.funtester.db.mysql.MysqlPool。

可惜打臉的事情來的太快了,在錄制視頻的時(shí)候偶然發(fā)現(xiàn)了 Intellij 代碼提示有個(gè)com.mysql.cj.jdbc.MysqlConnectionPoolDataSource的類。這還了得,看名字就知道是我想要的那款。

經(jīng)過查閱資料,好像也沒搜到太多詳細(xì)的資料??垂俜降奈臋n,也是遮遮掩掩,仿佛并不很推薦這個(gè)實(shí)現(xiàn)。關(guān)于 MySQL 連接池的管理,在 spring 語境下,應(yīng)該有相當(dāng)多更好的實(shí)踐。但是對于測試來講,那些太重,不太適合腳本化使用。不管怎樣,我還是注意到了這個(gè) MySQL 連接池的實(shí)現(xiàn)類。

關(guān)于它的名字,我在 stackoverflow 看到有人討論,表示說叫它 MySQL 連接池并不恰當(dāng),因?yàn)樗皇歉咝Ч芾砹诉B接的資源使用,并沒有池化。這一點(diǎn)在我實(shí)測中也發(fā)現(xiàn)了,使用獲取連接的時(shí)候,一直都是在創(chuàng)建新的連接。然后再連接空閑時(shí)間超過了設(shè)置之后,回收掉這個(gè)連接,回收的方法就是調(diào)用close()方法。

對于一般池化技術(shù)來講,就是為了解決重用問題。如果連接并不重用,而是進(jìn)行高效資源回收管理,其實(shí)并不算一個(gè)非常優(yōu)秀的解決方案。

下面是com.mysql.cj.jdbc.MysqlConnectionPoolDataSource使用實(shí)踐,比較簡單,API 倒是挺多的,但是大多數(shù)都用不到。

package com.funtest.groovytest
import com.funtester.frame.SourceCode
import com.mysql.cj.jdbc.MysqlConnectionPoolDataSource
class MysqlPoolTe extends SourceCode {
    public static void main(String[] args) {
        def query = "select * from testers limit 2;"
        def source = new MysqlConnectionPoolDataSource()
        source.setServerName("localhost")
        source.setPort(3306)
        source.setUser("root")
        source.setPassword("root123456")
        source.setDatabaseName("funtester")
        source.setAllowMultiQueries(true)
        def connection = source.getPooledConnection()
        def statement = connection.getConnection().createStatement()
        while (true) {
            sleep(1)
            def query = statement.executeQuery(query)
            while (query.next()) {
                output query.getString("name")
            }
        }
    }
}

這里有個(gè)很容易的坑,就是有個(gè)setURL()還有一個(gè)setUrl(),其實(shí)這兩個(gè)沒有任何區(qū)別,我只能說可能為了兼容舊版本把。還有就是設(shè)置了 URL 之后,好像 database 設(shè)置不起作用了,也是妙明感覺設(shè)計(jì)真糟心,所以在上面的案例中我也沒有用到這倆方法。

下面是我的測試結(jié)果,如圖所示創(chuàng)建了超級(jí)多的線程,但是一直連接的只有很少。大概是經(jīng)過幾秒鐘就會(huì)被回收一次,但是總創(chuàng)建數(shù)依舊非常高。

以后大概率我不會(huì)使用這個(gè)com.mysql.cj.jdbc.MysqlConnectionPoolDataSource實(shí)現(xiàn)類,依舊會(huì)繼續(xù)完善自己的連接池功能。

以上就是jdbc中自帶MySQL 連接池實(shí)踐示例的詳細(xì)內(nèi)容,更多關(guān)于jdbc MySQL 連接池的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • MYSQL批量UPDATE的兩種方式小結(jié)

    MYSQL批量UPDATE的兩種方式小結(jié)

    本文主要介紹了兩種MySQL批量UPDATE的方式,SQL的foreach循環(huán)和使用INSERT...ON?DUPLICATE?KEY?UPDATE,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • 關(guān)于Mysql中current_time/current_date()與now()區(qū)別

    關(guān)于Mysql中current_time/current_date()與now()區(qū)別

    這篇文章主要介紹了關(guān)于current_time/current_date()與now()區(qū)別,在Mysql中 current_time函數(shù)是顯示當(dāng)前時(shí)間的,而其他兩個(gè)函數(shù)有何不同呢, 接下來我們就一起來看看吧
    2023-04-04
  • MYSQL比對版本號(hào)字符串的方法實(shí)例

    MYSQL比對版本號(hào)字符串的方法實(shí)例

    因?yàn)閙ysql的版本較多,所以最近也踩了一個(gè)因?yàn)榘姹咎?hào)字符串的坑,下面這篇文章主要給大家介紹了關(guān)于MYSQL比對版本號(hào)字符串的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • 安裝Mysql時(shí)可能會(huì)遇到的一些疑難雜癥

    安裝Mysql時(shí)可能會(huì)遇到的一些疑難雜癥

    這篇文章主要給大家介紹了關(guān)于安裝Mysql時(shí)可能會(huì)遇到的一些疑難雜癥,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • MySQL系統(tǒng)庫之information_schema的實(shí)現(xiàn)

    MySQL系統(tǒng)庫之information_schema的實(shí)現(xiàn)

    information_schema用于存儲(chǔ)數(shù)據(jù)庫元數(shù)據(jù),本文主要介紹了MySQL系統(tǒng)庫之information_schema的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • MySQL數(shù)據(jù)庫的高可用方案總結(jié)

    MySQL數(shù)據(jù)庫的高可用方案總結(jié)

    這篇文章主要針對MySQL數(shù)據(jù)庫的高可用方案進(jìn)行詳細(xì)總結(jié),高可用架構(gòu)對于互聯(lián)網(wǎng)服務(wù)基本是標(biāo),本文是對各種方案的總結(jié),感興趣的小伙伴們可以參考一下
    2016-05-05
  • MySQL對小數(shù)進(jìn)行四舍五入的操作實(shí)現(xiàn)

    MySQL對小數(shù)進(jìn)行四舍五入的操作實(shí)現(xiàn)

    數(shù)學(xué)函數(shù)是MySQL中常用的一類函數(shù),其主要用于處理數(shù)字,包括整型和浮點(diǎn)數(shù)等等,本文主要介紹了MySQL對小數(shù)進(jìn)行四舍五入的操作實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • mysql免安裝版配置與修改密碼的教程

    mysql免安裝版配置與修改密碼的教程

    這篇文章主要介紹了mysql免安裝版配置與修改密碼的教程詳解,需要的朋友可以參考下
    2018-02-02
  • 為什么MySQL查詢速度會(huì)慢

    為什么MySQL查詢速度會(huì)慢

    這篇文章主要介紹了為什么MySQL查詢速度會(huì)慢的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • 解決mysql問題:由于找不到MSVCR120.dll,無法繼續(xù)執(zhí)行代碼

    解決mysql問題:由于找不到MSVCR120.dll,無法繼續(xù)執(zhí)行代碼

    這篇文章給大家分享解決mysql問題:由于找不到MSVCR120.dll,無法繼續(xù)執(zhí)行代碼.通過重新安裝程序解決此問題,下面小編把問題記錄及解決過程分享給大家,需要的朋友參考下吧
    2021-06-06

最新評(píng)論

临洮县| 长葛市| 丹凤县| 江北区| 临清市| 宁河县| 伊通| 鹿泉市| 平顺县| 陇南市| 宁蒗| 本溪市| 邮箱| 察隅县| 马尔康县| 且末县| 台江县| 江西省| 泰来县| 大安市| 葵青区| 玉门市| 桑植县| 贡山| 喀喇沁旗| 三台县| 桓仁| 太谷县| 长兴县| 叙永县| 永宁县| 清苑县| 安仁县| 中方县| 通城县| 江北区| 汶川县| 双流县| 镇坪县| 成都市| 石城县|