没有分配变量的 getConnection() 将泄漏连接

getConnection() with out assign variable will leak a connection

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

的代码
DatabaseMetaData dbMeta = getConnection().getMetaData(); 

其中 getConnection() 结果连接对象。这是结果连接泄漏吗? 这里返回的连接没有明确关闭。

根据 JavaDocs https://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html

Connection
A connection (session) with a specific database. SQL statements are executed and results are returned within the context of a connection.

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

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