一尘不染

数据库连接应该一直保持打开状态还是仅在需要时打开?

mysql

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

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


阅读 1532

收藏
2020-05-17

共1个答案

一尘不染

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

  • 在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

但是由于手动打开数据库连接太昂贵,因此强烈建议使用数据库连接池。这将为您处理物理数据库连接,当您
关闭 物理数据库连接(即调用Connection#close)时,物理数据库连接将仅处于SLEEP模式并仍处于打开状态。

相关问答:

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

2020-05-17