【问题标题】:Closing JDBC connection when calling a database multiple times inside the same function在同一函数内多次调用数据库时关闭 JDBC 连接
【发布时间】:2017-01-24 13:34:21
【问题描述】:

我正在尝试使用单个连接对象在单个函数中执行多个查询。我想知道在这种情况下关闭数据库连接的最佳做法是什么。目前,一旦所有数据库调用完成,我就会关闭连接。我想知道是否需要关闭连接并为每个数据库调用打开一个新连接。哪个更好?

【问题讨论】:

  • 为什么您觉得每次调用数据库都需要创建/关闭新连接?使用@Sean 的建议更有意义,这样您就可以在每个事务中使用可以包含多个调用的实例。

标签: java database oracle jdbc transactions


【解决方案1】:

您应该尽可能长时间地打开Connection。创建数据库连接是一项(相对)昂贵的操作,因此您不希望更频繁地执行此操作。

要管理生命周期,您应该使用 the try-with-resources statement 假设您至少使用 Java 7:

try (Connection connection = myDataSource.getConnection()) {
    // Do your queries here
}

【讨论】:

  • 但是,它不会使用可用于其他数据库调用的连接。
  • 我不关注。如果要连续运行多个查询,则不应释放它们之间的Connection
  • 我不完全同意,(逻辑)连接应该尽快关闭(即:当一个工作单元完成时);应该通过使用连接池来补偿创建物理连接的费用。
猜你喜欢
  • 1970-01-01
  • 2011-01-04
  • 2019-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-13
  • 2017-02-21
相关资源
最近更新 更多