首页 > 数据库 > mysql教程 > 我应该关闭池化 JDBC 连接吗?

我应该关闭池化 JDBC 连接吗?

Mary-Kate Olsen
发布: 2024-12-03 22:19:14
原创
940 人浏览过

Should I Close Pooled JDBC Connections?

关闭池中的 JDBC 连接

问题:使用连接池时是否应该关闭 JDBC 连接?如果是这样,那不是违背了池化的目的吗?

答案:是的,应该关闭池化连接。关闭池连接会将底层连接释放回池中。

连接池会跟踪哪些连接正在使用以及哪些连接空闲。当连接关闭时,池将其识别为可供重用。

问题:以下方法是否适合从池或 DriverManager 获取连接?

public Connection getConnection(boolean pooledConnection) throws SQLException {
    if (pooledConnection) {
        if (ds == null) {
            try {
                ds = (DataSource) new InitialContext().lookup("java:comp/env/jdbc/NamedInTomcat");
                return ds.getConnection();
            } catch (NamingException e) {
                e.printStackTrace();
            }
        }
        return (ds == null) ? getConnection(false) : ds.getConnection();
    }
    return DriverManager.getConnection("jdbc:mysql://..." + dbName, uName, pWord);
}
登录后复制

答案:不推荐使用该代码。 DataSource 应在应用程序启动期间初始化一次,而不是在方法中初始化。此外,同步和空检查是不必要的。该方法应该简单地查找 DataSource 一次并一致地返回连接。

其他注意事项:

  • 尝试时始终以相反的顺序关闭 JDBC 资源-with-resources 语句或在 finally 块中。
  • 如果您正在使用,请避免使用 DriverManager 手动建立连接连接池。

以上是我应该关闭池化 JDBC 连接吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板