java - 数据库连接应该始终保持打开状态还是仅在需要时才打开?

标签 java mysql jdbc bukkit

我有一个需要连接到数据库的 bukkit 插件 (minecraft)。

数据库连接应该始终保持打开状态,还是在需要时打开和关闭?

最佳答案

数据库连接必须仅在需要时打开,并在完成所有必要工作后关闭。代码示例:

  • 在 Java 7 之前:

      Connection con = null;
      try {
          con = ... //retrieve the database connection
          //do your work...
      } catch (SQLException e) {
          //handle the exception
      } finally {
          try {
              if (con != null) {
                  con.close();
              }
          } catch (SQLException shouldNotHandleMe) {
              //...
          }
      }
    
  • Java 7:

      try (Connection con = ...) {
      } catch (SQLException e) {
      }
      //no need to call Connection#close since now Connection interface extends Autocloseable
    

但由于手动打开数据库连接成本太高,强烈建议使用database connection pool ,用 Java 表示为 DataSource界面。这将为您处理物理数据库连接,当您关闭它(即调用 Connection#close)时,物理数据库连接将仅处于 SLEEP 模式并且仍处于打开状态.

相关问答:

一些处理数据库连接池的工具:

关于java - 数据库连接应该始终保持打开状态还是仅在需要时才打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18962852/

相关文章:

java - 如何在javascript代码后使用PHP "include"函数?

mysql - 我无法在表中插入数据奇怪的错误mysql

java - sqljdbc4.jar - 无法连接到 MSSQL 服务器实例 - SSL 错误?

java - JDBC 和并发问题

c# - 我如何检查数据库的属性值C#

hadoop - 尝试使用Jdbc访问Hive表时出错

java - 如何获取给定单元格的 (Java Apache POI HSSF) 背景颜色?

java - 如何获取正在上传的文件的 InputStream 的 MIME 类型?

java - 在Java中读取xml文件 - 仅选定的元素

php - 无法将数据插入 mySQL 数据库