下面是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連線池實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!