首頁  >  文章  >  資料庫  >  jdbc中自帶MySQL連線池實例分析

jdbc中自帶MySQL連線池實例分析

王林
王林轉載
2023-05-29 15:40:141150瀏覽

引言

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

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(),其實這兩個沒有任何差別,我只能說可能為了兼容舊版把。還有就是設定了 URL 之後,好像 database 設定不起作用了,也是妙明感覺設計真糟心,所以在上面的案例中我也沒有用到這兩個方法。

我進行測試後發現,儘管我創建了大量線程,但只有少數線程始終處於連接狀態。大概是經過幾秒鐘就會被回收一次,但是總創建數依舊非常高。

jdbc中自帶MySQL連線池實例分析

以上是jdbc中自帶MySQL連線池實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除