Java jdbc:我什么时候可以关闭什么
目前,我有以下基本结构的jdbc代码: 取得联系 (将下面4行重复几次,不要结束语句)Java jdbc:我什么时候可以关闭什么,java,database,jdbc,Java,Database,Jdbc,目前,我有以下基本结构的jdbc代码: 取得联系 (将下面4行重复几次,不要结束语句) 获取语句 获取结果集 处理结果集 封闭结果集 密切联系 写了这段代码后,我突然想到需要关闭语句。 1不结束声明会产生什么影响。 2以下工作是否正常,此si关闭语句是否会阻止我正常处理结果集 取得联系 (将下面5行重复几次) 获取语句 获取结果集 结束语句 处理结果集 封闭结果集 紧密连接答案取决于您的JDBC驱动程序。你在那里写的可能有用 但是,一般规则是,只有在处理完相应的resultset后,才能关闭语句
获取语句
获取结果集
处理结果集
封闭结果集 密切联系 写了这段代码后,我突然想到需要关闭语句。
1不结束声明会产生什么影响。
2以下工作是否正常,此si关闭语句是否会阻止我正常处理结果集 取得联系 (将下面5行重复几次)
获取语句
获取结果集
结束语句
处理结果集
封闭结果集
紧密连接答案取决于您的JDBC驱动程序。你在那里写的可能有用 但是,一般规则是,只有在处理完相应的resultset后,才能关闭语句
编辑:我知道你有第二个问题,你问了不关闭语句/结果集的影响等等。影响也取决于您的JDBC驱动程序,但它可能导致严重的资源泄漏。关闭行为在中指定。关闭连接将释放与连接关联的所有JDBC资源,并将隐式关闭所有语句、结果集等。关闭语句将关闭结果集 示例2不能保证有效。应在使用ResultSet后关闭该语句。该规范说,如果您尝试使用该结果集,您应该得到一个SQLException(一些JDBC驱动程序没有严格遵循该规范,MS也不是最大的违规者)
如果您忘记关闭ResultSet或语句,那么最糟糕的情况是您消耗数据库和JVM资源的时间超过了需要的时间。在资源受限或高负载的系统上,这可能会导致内存/连接/资源错误或性能降低。如果您使用的是Oracle,而忘记关闭将得到的语句
ORA-01000: maximum open cursors exceeded
过了一会儿