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

Bil*_*ill 8 java blob jdbc clob

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

此外,如果没有必要,如果您要立即关闭结果集,这是一个好主意吗?如果你不这样做,我可以看到它可能会有什么帮助.

Har*_*hra 3

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

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

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

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

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

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

引用自教程

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