当前位置: 首页 > 知识库问答 >
问题:

正在关闭HikariPool中的连接[重复]

上官兴昌
2023-03-14

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

目前我所做的工作如下:

  • 从池中获取连接
  • 创建准备好的语句,以便使用连接插入
  • 执行批插入

注意,我从不关闭连接!一旦我达到maxPoolsize(20),当我试图获得一个新的连接时,我会得到一个错误。

每次批量插入后是否应关闭连接?

  • 从池中获取连接
  • 创建准备好的语句,以便使用连接插入
  • 执行批插入
  • 结束准备好的声明

但是,这意味着我将承担从池获取连接的成本,在每个批处理插入后创建一个新的准备好的语句。

这是建议的方法,还是有任何替代方案可以降低这一额外成本?

共有1个答案

谷奕
2023-03-14

您需要关闭连接。通常池返回包装到另一个对象中的连接。当您在包装器上调用关闭时,它只是将内部数据库连接标记为自由,并将其返回到池。

此外,如果存在相同的对象,则可以重用现有的准备声明对象。如果您的每个任务都必须使用其唯一的准备语句(由于您的业务逻辑),那么没有其他方法,您必须为每个任务创建新的准备语句

 类似资料:
  • 我读过很多帖子,人们说在java、语句等中关闭连接,但我没有找到我的问题的答案。 我问我不做Con.close(),但我做所以它会关闭连接或不? 所以我只想知道,当我们关闭结果集时,连接是否会关闭?

  • 我试图使用node.js与mongoDB和以下教程在http://howtonode.org/express-mongodb 打开连接的代码是 但是我看不到任何连接被关闭。但当我看到mongo控制台上的日志时,我可以看到一些连接在一段时间后打开和关闭。 连接会自动关闭吗?当大量客户端尝试访问服务器时会有问题吗?应该在哪里关闭连接? 谢谢 图措

  • 我使用weblogic应用服务器和oracle数据库。我使用jdbc与oracle数据库通信。我从weblogic数据源获得连接,并向表中插入一条记录。问题是,当我想关闭连接(插入数据库后)时,我会遇到一个异常(连接已经关闭)。这是我的代码: 但是联系。close语句引发异常: 我试图避免连接。close语句(因为我教过连接是自动关闭的!!但过了一段时间,所有的连接都打开了,因此引发了一个异常)

  • 问题内容: 我们使用JDBC的标准代码部分是… 问题1:使用连接池时,是否应该在最后关闭连接?如果是这样,合并的目的就不会丢失吗?如果不是,那么DataSource如何知道何时释放Connection的特定实例并可以重用?我对此感到有些困惑,任何指针都表示赞赏。 问题2:以下方法是否接近标准?看起来像是尝试从池中获取连接,并且如果无法建立DataSource,请使用老式的DriverManager

  • 问题内容: 明智地关闭mysql连接效率是否至关重要,还是在php文件运行后自动关闭? 问题答案: 从文档中: 注意:脚本执行结束后,将立即关闭到服务器的链接,除非更早地通过显式调用mysql_close()关闭了该链接。 如果您的脚本在提取结果后要执行大量处理,并且已检索到完整的结果集,则绝对应该关闭连接。如果您不这样做,那么当Web服务器使用率过高时,MySQL服务器就有可能达到其连接限制。如

  • 我在运行的spring boot app for db2数据库中收到错误。重新启动应用程序时,连接开始工作。 如果收到或错误,则需要在运行时重新连接到数据库。 做这件事的最好方法是什么?我正在使用Hikari连接池,是否有一些属性允许数据库连接被检查..如果中断..然后重新连接。或者像@refreshScope这样的Spring Boot配置在配置更改后重新创建bean。在这种情况下,有什么spr