您是否应该始终关闭连接?

rth*_*sen 3 java sqlite concurrency jdbc

到目前为止,我所见过的所有JDBC代码每次都会创建和关闭一个连接。但是,我想知道是否有必要,因为我的代码似乎运行得很好,并且每次都在重用相同的连接:

这是一个不好的方法吗?

public static int getCount() {
    synchronized (DATABASE_ACCESS_LOCK) {
        try (ResultSet rs = QUERY.executeQuery("SELECT COUNT(1) FROM " + TABLE_CLIENTS)) {
            return rs.getInt(1);
        } catch (SQLException ex) {
            ex.printStackTrace();
            return -1;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Eri*_* J. 5

当您离开活动的工作范围时,通常应该释放数据库连接。数据库连接是昂贵的资源。将它们保留得比必要的时间长会使连接池管理器的工作变得困难得多。

如果一起执行多个数据库操作,则对所有这些操作使用相同的数据库连接是很合理的。完成该组操作后,释放连接。