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

问题描述 投票:0回答:1

我是否需要显式地在数组、clob 等上调用

free()
...或者会自动关闭 ResultSet 和/或 Statement 来解决这个问题吗? javadoc 没有说什么,所以我认为这是没有必要的,但我不想做出错误的假设。

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

java jdbc blob clob
1个回答
4
投票

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

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

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

这是另一个链接,说明了

free()
的场景。 JDBC 4 的 java.sql.Clob.free() 方法和向后兼容性

如果没有必要,关闭它是一个好主意吗? 立即得出结果?

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

引用教程

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

© www.soinside.com 2019 - 2024. All rights reserved.