小编典典

关闭数据库连接以避免内存泄漏

java

有关关闭Java中数据库连接的后续问题

Connection conn = DriverManager.getConnection(
     "jdbc:somejdbcvendor:other data needed by some jdbc vendor",
     "myLogin",
     "myPassword" );

Statement stmt = conn.createStatement();
try {
    stmt.executeUpdate( "INSERT INTO MyTable( name ) VALUES ( 'my name' ) " );
} finally {
    //It's important to close the statement when you are done with it
    stmt.close();
}
conn.close();

我知道conn.close()是必需的,但不知道为什么。一旦方法调用结束,垃圾收集器是否会释放连接对象(并释放连接对象中存储的所有指向数据库的处理程序)?


阅读 316

收藏
2020-11-30

共1个答案

小编典典

一旦方法调用结束,垃圾收集器是否会释放连接对象(并释放连接对象中存储的所有指向数据库的处理程序)?

没有。JDBC驱动程序保留对连接的引用,因此除非您可以关闭(),否则它不会被清除。

BTW创建数据库连接 非常 昂贵,因此您将希望在可能的情况下回收连接。

2020-11-30