下面是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中文网其他相关文章!