迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

Java 错误 Operation Not Allowed After ResultSet Closed

作者:迹忆客 最近更新:2023/07/07 浏览次数:

本篇文章介绍了 Java 中的 java.sql.SQLException: Operation not allowed after ResultSet closed 错误。


Java 错误 java.sql.SQLException: Operation not allowed after ResultSet closed

当我们尝试访问关闭的结果集时,错误“结果集关闭后不允许操作”是一个 SQL 异常。 正如Java Doc提到的,每当一个statement对象被关闭时,如果它的Resultset对象存在,它也将被关闭。

错误的问题在于 Resultset 实例还将保存底层语句。 因此,当底层语句关闭时,结果集也将关闭,从而引发错误。

这是会引发相同错误的代码片段。

代码:

ResultSet Result_Set; // class variable

Statement Demo_Statement = null;
try{
    Demo_Statement = DB_Connection.createStatement();
    Result_Set = Demo_Statement.getGeneratedKeys();
   }
catch (Exception e){
    throw e;
   }
finally{
try{
    if (Demo_Statement != null)
        Demo_Statement.close();
    } catch (SQLException e){
    throw e;
   }
}

System.out.println(Result_Set.next());

上面带有数据库连接的代码将引发以下错误。

java.sql.SQLException: Operation not allowed after ResultSet closed

修复 Java 错误 java.sql.SQLException: Operation not allowed after ResultSet closed

代码中的问题是,在处理完 Resultset 之前,我们无法关闭语句实例。 一旦我们完成了结果集,我们就可以关闭结果集和语句实例。

正如我们所看到的,我们试图从 Result_Set.next() 打印布尔值,但我们在关闭语句实例后使用结果集,这也关闭了结果集。

在上面的代码中,修复方法是不在该位置关闭语句,或者在关闭语句实例后不使用结果集。 根据您的应用程序,我们可以删除 Demo_Statement.close()System.out.println(Result_Set.next()); 陈述。

代码:

ResultSet Result_Set; // class variable

Statement Demo_Statement = null;
try{
    Demo_Statement = DB_Connection.createStatement();
    Result_Set = Demo_Statement.getGeneratedKeys();
   }
catch (Exception e){
    throw e;
   }
finally{
try{
    if (Demo_Statement != null)
        Demo_Statement.close();
   } catch (SQLException e){
    throw e;
   }
}

我们刚刚删除了在语句实例关闭后尝试使用结果集的部分。 一旦对结果集完成所有操作,我们就可以关闭语句实例和结果集。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Python 中使用 OpenCV 的 imshow() 函数

发布时间:2023/06/01 浏览次数:87 分类:Python

本篇文章将介绍如何使用该库的 imshow() 函数。在 Python 中使用 OpenCV 库中的 imshow() 函数 cv2.imshow() 函数可以在新窗口中显示图像。 创建的窗口将自动调整以适合图像。

Python 中的 OpenCV-contrib 模块

发布时间:2023/06/01 浏览次数:196 分类:Python

Python 提供了一个名为 OpenCV 的标准库。 它有很多工具和功能来处理和实现不同的技术和算法。这个 OpenCV 库中有一个名为 OpenCV-contrib 的附加项。 我们将在本教程中讨论这个 OpenCV-contrib 模块及其

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便