关闭 HikariPool 中的连接

Closing connection in HikariPool

我有一个独立的 java 应用程序,它使用 Hikaricp 获取消息流、批处理并将它们插入 SQL 服务器数据库。

目前我做的是:

请注意,我从不关闭连接!当我达到 maxPoolSize (20) 时,我在尝试建立新连接时遇到错误。

我应该在每次批量插入后关闭连接吗?

但是,这意味着我要承担从池中获取连接 + 在每次批量插入后创建新的准备好的语句的成本。

这是推荐的方法还是有任何替代方法可以减少这种额外成本?

您需要关闭连接。通常将 return 连接包装到另一个对象中。当您在包装器上调用 close 时,它只是将内部数据库连接标记为空闲并将其 return 发送到池中。

您还可以重用现有的 PreparedStatement 对象,如果它们相同的话。如果您的每个任务都必须使用其唯一的 PreparedStatement(由于您的业务逻辑),那么没有其他方法,您必须为每个任务创建新的 PreparedStatement