java - jdbc:我什么时候可以关闭什么

标签 java database jdbc

目前我的jdbc代码基本结构如下:

获取连接

(接下来的 4 行多次执行,从不关闭语句)
获取语​​句
获取结果集
处理结果集
关闭结果集

关闭连接

我在写完这段代码后突然想到我需要关闭语句。
1 不关闭语句有什么影响。
2 下面的工作,这个 si 将关闭语句阻止我正常处理结果集吗?

获取连接

(接下来的5行多做几次)
获取语​​句
获取结果集
结束语
处理结果集
关闭结果集

关闭连接

最佳答案

关闭行为在 JDBC Specification 中指定.关闭连接会释放所有与连接关联的 JDBC 资源,并将隐式关闭所有语句、结果集等。关闭语句将关闭结果集。

不保证示例 2 有效。应在使用 ResultSet 后关闭该语句。规范指出,如果您尝试使用该 ResultSet(一些 JDBC 驱动程序不严格遵守规范——MS 不是最大的违规者),您应该得到一个 SQLException。

如果您忘记关闭 ResultSet 或 Statement,最糟糕的情况是您消耗数据库和 JVM 资源的时间超过必要的时间。在资源受限或高负载系统上,这可能会导致内存/连接/资源错误或性能降低。

关于java - jdbc:我什么时候可以关闭什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/254639/

相关文章:

java - 最后一个工作日期非假期

java - 如何使用 NavigableIndex 从 cqengine IndexedCollection 获取第一个或最后一个项目

php - 数据规范化还是智能搜索?

database - 任何用于存储过程的静态代码分析工具?

Java 数据库与映射?

java - 这是糟糕的耦合吗?

java - java中的数字和字母二叉树

sql - 主表和事务表的区别

java - 选择 JDBC 驱动程序

java - Spring Boot webservice JDBC偶尔无法获得连接