我是否需要在Arrays,clobs等上显式调用free()
或者关闭ResultSet和/或Statement会自动处理这个问题? javadoc没有说什么,所以我认为没有必要,但我不想做出错误的假设。
另外,如果没有必要,是否要立即关闭结果集是个好主意?如果你不打算这样做,我可以看出它会有什么帮助。
答案 0 :(得分:2)
这取决于您使用的供应商和JDBC版本。由于所有数据库供应商都不支持Array(例如MySQL)
这可能是为什么javadoc没有说什么的原因。
我在oracle网站的JavaSE教程中找到了这个教程 Using Array Object ,该教程说明了这一点。
这是另一个链接,说明了free()
的情景。
JDBC 4's java.sql.Clob.free() method and backwards compatibility
如果没有必要,如果你要关闭它是个好主意 结果立即设置?
我认为那时不应该要求free(),但如果它是一个长时间运行的transcation,那么调用free()会很好。
引用tutorial:
数组对象至少在持续时间内保持有效 创建它们的事务。这可能会导致结果 在长时间运行期间耗尽资源的应用程序中 交易。应用程序可以通过调用释放阵列资源 他们的自由方法。