【问题标题】:Should I close connection in each method with JDBC?我应该在每种方法中使用 JDBC 关闭连接吗?
【发布时间】:2015-04-08 03:20:10
【问题描述】:

我有一个 java web 服务器,有很多方法通过 JDBC 查询我的每个 mysql 数据库。在每个调用的方法结束时,Statement 和 Resultset 都会自动关闭。 尽管如此,我从不关闭连接,因为整个应用程序都使用与数据库相同的连接。

这是我的问题:

  • 我在连接方面做得很好还是应该在每种方法中创建和关闭连接(意味着几乎在每次查询之后)?

  • 如果我为每种方法都创建一个连接,这对我的服务器资源不足来说不是很昂贵吗?

PS:我发现的关于 JDBC 的已提出问题都没有解决这个问题。

【问题讨论】:

  • 考虑使用某种连接池,这样,当您“关闭”连接时,它会返回到池中。它还允许您限制应用程序可能能够建立的活动连接数
  • 什么意思,自动关闭?
  • 感谢您的回答@MadProgrammer。所以,我应该关闭每种方法的连接。对吧?
  • 不,您使用连接池 api 将连接返回到池。简而言之,当您的应用程序启动时,没有连接。在处理请求时,您请求连接。如果已经有一个打开,则返回给您,否则创建一个新的(最多限制)并返回给您。在您的 servlet destry() 方法中,您终止池中的所有连接

标签: java mysql jdbc


【解决方案1】:

MadProgrammer 和 Steve Atkinson 的主要问题下的 cmets 帮助了我。 实际上,与必须为每个查询打开和关闭一个连接或为整个应用程序使用相同的连接相比,拥有一个连接池是一种更好的做法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 2018-07-05
    相关资源
    最近更新 更多