8

我是否需要显式调用free()数组、clob 等...还是会自动关闭 ResultSet 和/或 Statement 来解决这个问题?javadoc 什么也没说,所以我认为没有必要,但我不想做出不正确的假设。

另外,如果没有必要,是否要立即关闭结果集是个好主意?如果您不打算这样做,我可以看到它可能会有所帮助。

4

1 回答 1

2

这取决于您使用的供应商和 JDBC 版本。由于所有数据库供应商都不支持数组(例如 MySQL)

这可能就是为什么 javadoc 什么也没说的原因。

我在 oracle 站点的 JavaSE 教程上找到了本教程Using Array Object,它说要显式释放资源。

这是另一个链接,它说明了 on 的场景free()JDBC 4 的 java.sql.Clob.free() 方法和向后兼容性

如果没有必要,是否要立即关闭结果集是个好主意?

我认为应该不需要 free(),但是如果它是一个长期运行的事务,那么调用 free() 很好。

引用教程

数组对象至少在创建它们的事务期间保持有效。这可能会导致应用程序在长时间运行的事务期间耗尽资源。应用程序可以通过调用它们的 free 方法来释放 Array 资源。

于 2012-09-11T05:46:31.700 回答