有人会关心HikariCP如何处理池中的连接吗?如何在池中添加新连接,以及如何调用它/稍后检索它?
这是我目前的代码:
HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(100);
config.setDataSourceClassName("com.mysql.jdbc.jdbc2.optional.MysqlDataSource");
config.addDataSourceProperty("serverName", "localhost");
config.addDataSourceProperty("port", "8889");
config.addDataSourceProperty("databaseName", "XXX");
config.addDataSourceProperty("user", "XXX");
config.addDataSourceProperty("password", "XXX");
System.out.print("qq");
HikariDataSource ds = new HikariDataSource(config);
ds.setConnectionTimeout(800);
答案 0 :(得分:12)
使用池时,您不会在池中添加连接以便稍后检索它。您可以执行完全相反的操作:在需要时从池中获取连接,并在完成连接后关闭连接以将其返回池中。正如其名称所示,HikariDataSource是一个DataSource。 DataSource是一个从中获取连接的对象。
池会为您处理连接的打开。如果没有自动连接等,它会让你进入等待队列。
根据池的属性,池可以立即打开连接或按需打开连接,保持始终打开给定数量的连接,在给定的未使用时间量后缩小池大小等。
所有文件都记录完毕:https://github.com/brettwooldridge/HikariCP#user-content-configuration-knobs-baby
示例代码(Java 7及更高版本):
try (Connection connection = ds.getConnection()) {
// use the connection
}
示例代码(在Java 7之前):
Connection connection = ds.getConnection();
try {
// use the connection
}
finally {
connection.close();
}