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