PreparedStatement.close()vs PreparedStatement = null;

Shi*_*ppa 3 java

我有一个简单的问题.我的代码中有一些内存泄漏,因为我认为这是因为PreparedStatement和ResultSet我想知道什么是释放资源及其内存的最佳,安全和正确的方法.

PreparedStatement.close()还是PreparedStatement = null

ResultSet.close()还是ResultSet = null

谢谢

gle*_*e8e 5

在每个使用过的Closable对象上调用close()方法.清除参考是不够的.

如果您只是清除引用,那么只有在Connection关闭时才会关闭这些Statement和ResultSet对象,如果使用ConnectionPool或类似的东西,它们(很可能)永远不会被关闭.

编辑:关闭连接会导致关闭此连接创建的所有语句和结果集.关闭Statement会导致关闭此Statement创建的所有ResultSet.