我正在尝试使用 HikariCP 连接池。我能够让它工作并获得我可以使用的连接。我不确定将连接返回到池的最佳方法是什么。
我有以下问题:
- 我应该在完成后关闭连接,依靠idleTimeout 和maxLifetime设置,还是有另一个我可以使用的调用,以免占用池中的连接?
- 如果我关闭连接(而不是返回池),这不会导致创建额外的连接对象以满足连接池大小的要求吗?
寻找有用的建议。
我正在尝试使用 HikariCP 连接池。我能够让它工作并获得我可以使用的连接。我不确定将连接返回到池的最佳方法是什么。
我有以下问题:
寻找有用的建议。
与大多数连接池一样,当您请求时,Hikari 不会为您提供实际的 JDBC 连接。相反,它为您提供了一个实现Connection
接口的代理。在 Hikari 的情况下 - 它是一个ConnectionProxy
对象。
此代理有几个目的,其中主要是 - 将打开/关闭连接和语句的控制权从您手中转移到连接池中。这会自动发生,您应该像往常一样使用您的连接。这包括在使用后关闭它们。
如果您查看Hikari 的源代码,特别是在ConnectionProxy
类中,您会发现该close()
方法与标准方法有很大不同。代码如下:
将连接标记为已关闭,进行清理,重置底层连接状态和参数。
因此,简单地调用close()
只会清理并将连接返回到池中。