目前我有jdbc代码与以下基本结构:
得到连接
(多次执行接下来的4行,从不关闭语句)
get语句
获取结果集
处理结果集
关闭结果集
密切联系
写完这段代码之后,我想要关闭语句.
1不关闭声明会产生什么影响.
2将以下工作,这个si会关闭语句阻止我处理结果集正常吗?
得到连接
(多次执行接下来的5行)
get语句
get result set
close语句
处理结果集
close结果集
密切联系
关闭行为在JDBC规范中指定.关闭Connection将释放与该连接关联的所有JDBC资源,并将隐式关闭所有语句,ResultSet等.关闭该语句将关闭ResultSet.
示例2不能保证有效.在使用ResultSet之后应该关闭该语句.规范说你应该得到一个SQLException,如果你试图使用那个ResultSet(一些JDBC驱动程序不严格遵循规范 - 而MS不是最大的罪犯).
如果您忘记关闭ResultSet或Statement,更糟糕的情况是您使用数据库和JVM资源的时间超过了必要的时间.在资源受限或高负载系统上,这可能导致内存/连接/资源错误或性能降低.