微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么Whilers.next语句在第一次迭代后结束?

如何解决为什么Whilers.next语句在第一次迭代后结束?

您将重新使用循环最后一行中Statement产生rs的那个。

这将关闭ResultSetrs。如文档中所述

ResultSet当对象将自动关闭Statement生成它对象被关闭时,重新执行,或用于检索从多个结果的序列中的下一结果。

您需要使用第二个Statement对象来执行INSERT语句。

解决方法

我正在使用SELECT语句从表中获取数据,然后将其插入到另一个表中。但是,行“ stmt.executeQuery(query);”
从表中插入第一行然后退出。当我注释掉这一行时,while循环遍历所有行,将它们打印出来。stacktrace没有显示任何错误。为什么会这样呢?

try{                
    String query = "SELECT * FROM "+schema_name+"."+table;

    rs = stmt.executeQuery(query);

    while (rs.next()) {

        String bundle = rs.getString("BUNDLE");
        String project_cd = rs.getString("PROJECT_CD");
        String dropper = rs.getString("DROPPER");
        String week = rs.getString("WEEK");
        String drop_dt = rs.getString("DROP_DT").replace(" 00:00:00.0","");

        query = "INSERT INTO INDUCTION_INFO (BUNDLE,PROJECT_CD,DROPPER,WEEK,DROP_DT) "
              + "VALUES ("
              + bundle+","
              + "'"+project_cd+"',"
              + dropper+","
              + week+","
              + "to_date('"+drop_dt+"','YYYY-MM-DD'))";

        System.out.println(query);

        stmt.executeQuery(query);
    }
}catch(Exception e){
    e.printStackTrace();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。