我是否需要显式地在数组、clob 等上调用
free()
...或者会自动关闭 ResultSet 和/或 Statement 来解决这个问题吗? javadoc 没有说什么,所以我认为这是没有必要的,但我不想做出错误的假设。
另外,如果没有必要,立即关闭结果集是个好主意吗?如果您不打算这样做,我可以看到它会有什么帮助。
这取决于您使用的供应商和 JDBC 版本。由于所有数据库供应商都不支持Array(例如MySQL)
这可能就是 javadoc 没有说什么的原因。
我在oracle站点的JavaSE教程上找到了这个教程Using Array Object,它说要显式释放资源。
这是另一个链接,说明了
free()
的场景。
JDBC 4 的 java.sql.Clob.free() 方法和向后兼容性
如果没有必要,关闭它是一个好主意吗? 立即得出结果?
我认为不应该需要 free(),但是如果它是一个长时间运行的事务,那么最好调用 free()。
引用教程:
数组对象至少在该持续时间内保持有效 创建它们的交易。这可能会导致 在长时间运行期间耗尽资源的应用程序中 交易。应用程序可以通过调用来释放数组资源 他们的免费方法。