Java 带有out assign变量的getConnection()将泄漏连接
我正在使用jdbc连接池,如果我编写类似Java 带有out assign变量的getConnection()将泄漏连接,java,connection-pooling,Java,Connection Pooling,我正在使用jdbc连接池,如果我编写类似 DatabaseMetaData dbMeta = getConnection().getMetaData(); 其中getConnection()是连接对象的结果。这是连接泄漏吗? 这里返回的连接没有显式关闭。根据JavaDocs 连接 与特定数据库的连接(会话)。SQL语句是 在连接的上下文中执行并返回结果 而getMetaData()是 正在检索DatabaseMetaData对象,该对象包含有关此连接对象表示连接的数据库的元数据。元数据包括有
DatabaseMetaData dbMeta = getConnection().getMetaData();
其中getConnection()是连接对象的结果。这是连接泄漏吗?
这里返回的连接没有显式关闭。根据JavaDocs
连接与特定数据库的连接(会话)。SQL语句是 在连接的上下文中执行并返回结果 而
getMetaData()
是
正在检索DatabaseMetaData对象,该对象包含有关此连接对象表示连接的数据库的元数据。元数据包括有关数据库表、其支持的SQL语法、其存储过程、此连接的功能等信息。
返回:
此连接对象的DatabaseMetaData对象
因此,
getMetaData()
可用于验证连接对象的有效性,getConnection()
还负责创建连接对象,getMetaData()
可用于获取与上述点相关的信息。此外,如上所述,您必须确保连接已关闭,以避免每次使用连接后出现内存泄漏。很可能是。为什么这里与其他需要确保连接已关闭的情况有所不同?谢谢Rishal。因此,这将是编写代码的正确方法。Connection con=getConnection();DatabaseMetaData dbMeta=con.getMetaData();在代码con.close()的末尾;非常感谢,瑞沙。