java.sql.Array / Blob / Clob类型需要“free()”编辑吗?

时间:2012-09-11 04:21:47

标签: java jdbc blob clob

我是否需要在Arrays,clobs等上显式调用free()或者关闭ResultSet和/或Statement会自动处理这个问题? javadoc没有说什么,所以我认为没有必要,但我不想做出错误的假设。

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

1 个答案:

答案 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

  

数组对象至少在持续时间内保持有效   创建它们的事务。这可能会导致结果   在长时间运行期间耗尽资源的应用程序中   交易。应用程序可以通过调用释放阵列资源   他们的自由方法。