java - 为什么调用 Statement.close() 不会立即释放 Statement 对象创建的 ResultSet 对象?
问题描述
来自 JDBC 规范
关闭 Statement 对象将关闭该 Statement 对象生成的任何 ResultSet 实例并使之无效。ResultSet 对象持有的资源可能在垃圾回收再次运行之前不会被释放,因此在不再需要 ResultSet 对象时显式关闭它们是一个好习惯。
调用 ResultSet.close() 会立即释放 ResultSet 对象吗?
调用 Statement.close() 会立即释放 Statement 对象吗?
调用Statement.close()会释放Statement对象创建的ResultSet对象,为什么不立即释放ResultSet对象呢?
解决方案
似乎是根据ResultSet SE 8 #close()立即发布的
声明 SE 8也是如此
当生成它的 Statement 对象关闭时,ResultSet也会自动关闭。
当生成它的 Statement 对象关闭、重新执行或用于从多个结果序列中检索下一个结果时,ResultSet 对象将自动关闭。
推荐阅读
- batch-file - 批量获取 2 个字符之间的字符串
- ios - 如何在swift中从字符串数组中拆分字符串
- ssl - 通过 https 和 http 加载的不同页面
- android - 如何在 Android 中以编程方式获取 TabItem ID
- python - 熊猫从值的字典中替换子字符串
- typo3 - 从 tt_news 导入 tt_news 和 news (TYPO3 8 LTS) 中的附加字段
- sql - SQL 服务器查询以添加具有默认值的列
- testing - 不变违规:无法在未安装的组件上找到节点。阿波罗
- node.js - 无法读取未定义的属性“listPipelines”
- python - 如何导出估算器 tf.estimator.DNNClassifier