目前我的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/