Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有out assign变量的getConnection()将泄漏连接_Java_Connection Pooling - Fatal编程技术网

Java 带有out assign变量的getConnection()将泄漏连接

Java 带有out assign变量的getConnection()将泄漏连接,java,connection-pooling,Java,Connection Pooling,我正在使用jdbc连接池,如果我编写类似 DatabaseMetaData dbMeta = getConnection().getMetaData(); 其中getConnection()是连接对象的结果。这是连接泄漏吗? 这里返回的连接没有显式关闭。根据JavaDocs 连接 与特定数据库的连接(会话)。SQL语句是 在连接的上下文中执行并返回结果 而getMetaData()是 正在检索DatabaseMetaData对象,该对象包含有关此连接对象表示连接的数据库的元数据。元数据包括有

我正在使用jdbc连接池,如果我编写类似

DatabaseMetaData dbMeta = getConnection().getMetaData(); 
其中getConnection()是连接对象的结果。这是连接泄漏吗? 这里返回的连接没有显式关闭。

根据JavaDocs

连接
与特定数据库的连接(会话)。SQL语句是 在连接的上下文中执行并返回结果

getMetaData()
是 正在检索DatabaseMetaData对象,该对象包含有关此连接对象表示连接的数据库的元数据。元数据包括有关数据库表、其支持的SQL语法、其存储过程、此连接的功能等信息。 返回: 此连接对象的DatabaseMetaData对象


因此,
getMetaData()
可用于验证连接对象的有效性,
getConnection()
还负责创建连接对象,
getMetaData()
可用于获取与上述点相关的信息。此外,如上所述,您必须确保连接已关闭,以避免每次使用连接后出现内存泄漏。

很可能是。为什么这里与其他需要确保连接已关闭的情况有所不同?谢谢Rishal。因此,这将是编写代码的正确方法。Connection con=getConnection();DatabaseMetaData dbMeta=con.getMetaData();在代码con.close()的末尾;非常感谢,瑞沙。