将连接对象返回到HikariCP池的最佳方法

时间:2014-08-18 15:50:19

标签: java connection-pooling hikaricp

我正在尝试使用HikariCP连接池。我能够让它工作并获得我可以使用的连接。我不确定将连接返回池的最佳方法是什么。

我有以下问题:

  • 我完成后应该关闭连接,依赖 idleTimeout maxLifetime 设置或是否有我可以使用的另一个调用 为了不占用游泳池的连接?
  • 如果我关闭连接(而不是返回池),会 这不会导致创建其他连接对象 满足连接池大小的要求?

寻找有用的建议。

1 个答案:

答案 0 :(得分:41)

与大多数连接池一样,Hikari在您要求时不会为您提供实际的JDBC连接。它的作用是为您提供实现Connection接口的代理。在Hikari的情况下 - 它是一个ConnectionProxy对象。

此代理用于一些目的,主要是 - 控制打开/关闭连接和语句,远离您并进入连接池。这会自动发生,您应该像往常一样使用您的连接。这包括在使用后关闭它们。

如果您查看source code for Hikari,特别是ConnectionProxy课程,您会看到close()方法与标准方法有很大不同。代码读作:

  

将连接标记为已关闭,执行清理,重置基础连接状态和参数。

因此,只需调用close()即可清理并返回与池的连接。