如何在HikariCP中创建新连接并在以后检索它们

时间:2014-10-06 19:09:34

标签: java hikaricp

有人会关心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);

1 个答案:

答案 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();
}