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

时间:2018-04-06 07:04:57

标签: java connection-pooling

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

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

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

1 个答案:

答案 0 :(得分:1)

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

  

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

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

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