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

2022-09-01 15:06:23

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

我有以下问题:

  • 我应该在完成后关闭连接,依靠idleTimeoutmaxLifetime设置,还是可以使用另一个调用,以免占用池中的连接?
  • 如果我关闭连接(而不是返回到池),这是否会导致创建其他连接对象以满足连接池大小的要求?

寻找有用的建议。


答案 1

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

此代理有几个目的,其主要目的是 - 将打开/关闭连接和语句的控制权从您身边转移到连接池中。这是自动发生的,您应该像往常一样使用连接。这包括在使用后关闭它们。

如果您查看Hikari的源代码,特别是在类中,您会发现该方法与标准方法非常不同。代码读作:ConnectionProxyclose()

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

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


答案 2

推荐