stmt.executeUpdate(sql);执行完毕是否会自动关闭

来源:百度知道 编辑:UC知道 时间:2024/05/05 19:25:34
while (rst.next()) {
String tempname = rst.getString(2);
System.out.println(tempname);
stmt.executeUpdate("insert into message(name) values('"+ tempname + "')");// 将已注册的用户名从user表更新到message表中
}
我想通过while循环将name字段复制到另一个表,但运行时总会报错java.sql.SQLException: Operation not allowed after ResultSet closed
谁知道是为什么???

你之前一定是用过
rst=stmt.executeQuery(...)

rst就是stmt的结果集

但是你用到
stmt.executeUpdate("insert into message(name) values('"+ tempname + "')");


就是使stmt之前的结果集关闭了

你必须使用两个Statement

可以将代码改成这样

Statement stmt2=conn.createStatement();
while (rst.next()) {
String tempname = rst.getString(2);
System.out.println(tempname);
stmt2.executeUpdate("insert into message(name) values('"+ tempname + "')");// 将已注册的用户名从user表更新到message表中
}

要是回答的内容有问题,或认为不妥,请发送百度消息给我,消息内容加上本页网址哦。。

·