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

jdbc中自帶MySQL?連接池實踐示例

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

引言

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

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

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

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

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

下面是com.mysql.cj.jdbc.MysqlConnectionPoolDataSource使用實踐,比較簡單,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")
            }
        }
    }
}

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

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

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

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

相關(guān)文章

  • MYSQL設(shè)置觸發(fā)器權(quán)限問題的解決方法

    MYSQL設(shè)置觸發(fā)器權(quán)限問題的解決方法

    這篇文章主要介紹了MYSQL設(shè)置觸發(fā)器權(quán)限問題的解決方法,需要的朋友可以參考下
    2014-09-09
  • MySQL按指定字符合并以及拆分實例教程

    MySQL按指定字符合并以及拆分實例教程

    這篇文章主要給大家介紹了關(guān)于MySQL按指定字符合并以及拆分的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Mysql排序和分頁(order by&limit)及存在的坑

    Mysql排序和分頁(order by&limit)及存在的坑

    這篇文章主要介紹了Mysql排序和分頁(order by&limit)及存在的坑,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 記一次因線上mysql優(yōu)化器誤判引起慢查詢事件

    記一次因線上mysql優(yōu)化器誤判引起慢查詢事件

    這篇文章主要介紹了記一次因線上mysql優(yōu)化器誤判引起慢查詢事件的相關(guān)資料以及最終的解決方案,分享給大家,希望能夠給大家一點啟發(fā)。
    2017-02-02
  • 小記一次mysql主從配置解決方案

    小記一次mysql主從配置解決方案

    mysql主從方案主要作用:讀寫分離,使數(shù)據(jù)庫能支撐更大的并發(fā)。在報表中尤其重要。由于部分報表sql語句非常的慢,導(dǎo)致鎖表,影響前臺服務(wù)。如果前臺使用master,報表使用slave,那么報表sql將不會造成前臺鎖,保證了前臺速度。
    2015-10-10
  • RHEL6.2編譯安裝MySQL 5.6.16過程分享

    RHEL6.2編譯安裝MySQL 5.6.16過程分享

    這篇文章主要介紹了RHEL6.2編譯安裝MySQL 5.6.16過程分享,還包括了mysql_secure_installation腳本運行指導(dǎo),需要的朋友可以參考下
    2014-07-07
  • MySQL中l(wèi)imit對查詢語句性能的影響

    MySQL中l(wèi)imit對查詢語句性能的影響

    我們知道,當(dāng)limit offset rows中的offset很大時,會出現(xiàn)效率問題,那么如果提高limit的執(zhí)行效率呢
    2021-09-09
  • MySQL使用B+Tree當(dāng)索引的優(yōu)勢有哪些

    MySQL使用B+Tree當(dāng)索引的優(yōu)勢有哪些

    這篇文章主要介紹了MySQL使用B+Tree當(dāng)索引有哪些優(yōu)勢,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下
    2021-03-03
  • mysql數(shù)據(jù)庫視圖和執(zhí)行計劃實戰(zhàn)案例

    mysql數(shù)據(jù)庫視圖和執(zhí)行計劃實戰(zhàn)案例

    這篇文章主要給大家介紹了關(guān)于mysql數(shù)據(jù)庫視圖和執(zhí)行計劃的相關(guān)資料,在使用MySQL過程中視圖和執(zhí)行計劃是一個很好的工具,文中通過圖文以及代碼介紹的非常詳細,需要的朋友可以參考下
    2024-02-02
  • MySQL之where使用詳解

    MySQL之where使用詳解

    我們需要獲取數(shù)據(jù)庫表數(shù)據(jù)的特定子集時,可以使用where子句指定搜索條件進行過濾。本文主要介紹了MySQL之where使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11

最新評論