你应该总是关闭连接吗?

时间:2013-01-15 04:08:27

标签: java sqlite jdbc concurrency

到目前为止,我所看到的所有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;
        }
    }
}

1 个答案:

答案 0 :(得分:4)

离开活动工作范围时,通常应该释放数据库连接 。数据库连接是昂贵的资源。持有它们超过必要的时间会使连接池管理器的工作变得更加困难。

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