当前位置: 首页 > 面试题库 >

无效状态,ResultSet对象关闭

穆智刚
2023-03-14
问题内容

我正在运行代码,但是得到的是“无效状态,ResultSet对象已关闭”。错误。是什么导致错误?

try{
    query = "SELECT * FROM BUNDLE_TEMP "
                  + "MINUS "
                  + "SELECT * FROM BUNDLE";

            rs = stmt.executeQuery(query);

            while (rs.next()){
                String bundle = rs.getString("BUNDLE");
                String week = rs.getString("WEEK");
                String sched_dt = rs.getString("SCHED_DT").replace(" 00:00:00.0", "");
                String dropper_id = rs.getString("DROPPER_ID");


                query = "INSERT INTO BUNDLE "
                            + "VALUES ('"
                                + bundle+"','"
                                + week+"','"
                                + sched_dt+"','"
                                + dropper_id+"')";

                stmt.executeUpdate(query);
            }
        }catch(Exception e){
            System.out.println("Error while trying to insert into BUNDLE\n"+query+"\n"+ e);
        }

问题答案:

您无法Statement对当前使用进行迭代的查询执行另一个SQL查询ResultSet。这样做会关闭先前打开的游标(您的SELECT查询代表ResultSet):

引用Statement的API文档:

默认情况下,每个Statement对象只能同时打开一个ResultSet对象。因此,如果一个ResultSet对象的读取与另一个的读取交错,则每个都必须由不同的Statement对象生成。如果存在打开的语句,Statement接口中的所有执行方法都会隐式关闭该语句的当前ResultSet对象。

创建另一个Statement从您的实例Connection,让我们把它updateStmtexecuteUpdate()在那一个。

另外,查看准备好的语句以进行更新,它可能会更高效,更安全。



 类似资料:
  • 我试图使用回调将验证输入。 当我试图在文本框中输入时,我遇到了下面的错误。有人能帮我解释一下为什么我会犯这个错误,以及我如何纠正它吗。 不允许回调吗?我错过了什么? 未捕获错误:对象作为React子对象无效(找到:具有键{dispatchConfig、_TargetList、nativeEvent、type、target、currentTarget、eventPhase、bubbles、cance

  • 我是统一的新手,在相机上练习变换动作。我正在应用的c#脚本的代码是。 我搜索了问题,并设法得到调试器无法从堆栈顶部获取任何内容。但我无法找出它与特定代码的关系,以及实际问题存在的地方? 错误日志:解决方案-

  • 当用户单击“登录”时,会重定向到KeyClope登录页面 [Server:node-00]13:40:00709警告[org.keydape.adapters.OAuthRequestAuthenticator](默认任务-30)状态参数无效 我的申请是: 应用程序URL为https://localhost:8443/app 当我使用超文本传输协议时,它可以工作。但是当我使用https时,错误就来

  • 问题内容: 目前,我正在阅读“ Java并发实践”,其中包含以下句子: 由于线程访问无状态对象的操作不会影响其他线程上操作的正确性,因此无状态对象是线程安全的。 那么,什么是无状态对象? 问题答案: 无状态对象是没有实例字段(实例变量)的类的实例。该类 可能 具有字段,但是它们是编译时常量(静态final)。 一个非常相关的术语是 不可变的 。不可变的对象可能具有状态,但是在调用方法时状态不会改变

  • 问题内容: 在无状态会话Bean中,注入了一个对象,但是我想获得一个对象以调用DB过程。有什么解决办法吗? 问题答案: 这将是JPA提供程序特定的代码。通常,这是通过在类上调用来完成的。 如果您使用的是EclipseLink,则以下代码(来自EclipseLink Wiki )将非常有用(在使用应用程序管理的EntityManager的情况下): JPA 2.0 JPA 1.0 注意,为JPA 2

  • 2d_canvas String - 画布. flash_3d String - Flash. flash_stage3d String - Flash 舞台3D. flash_stage3d_baseline String - Flash 舞台3D 基线配置. gpu_compositing String - 合成. multiple_raster_threads String - 多光栅线程.