今天遇到一个问题,不知道咋回事。
1 PreparedStatement ps = null; 2 ResultSet rs = null; 3 ResultSet rs2 = null;
中间部分代码省略
1 // 建立数据库操作对象,预编译 2 String sql = "select balance from bank where name = ?"; 3 ps = conn.prepareStatement(sql); 4 // 执行SQL语句 5 ps.setString(1, srcName); 6 rs = ps.executeQuery(); 7 ps.setString(1, desName); 8 rs2 = ps.executeQuery(); 9 if (rs.next() && rs2.next()) {
这样写(用一个Preparedstatement对象setString()两次执行查询两次,将结果分别返回到两个不同的ResultSet对象中)执行,在执行到第9行报错提示rs已关闭:
java.sql.SQLException: Operation not allowed after ResultSet closed
-----------------------------------------------------------------------------------------
1 PreparedStatement ps = null; 2 PreparedStatement ps2 = null; 3 ResultSet rs = null; 4 ResultSet rs2 = null;
//中间部分代码省略
1 // 建立数据库操作对象,预编译 2 String sql = "select balance from bank where name = ?"; 3 ps = conn.prepareStatement(sql); 4 ps2 = conn.prepareStatement(sql); 5 // 执行SQL语句 6 ps.setString(1, srcName); 7 rs = ps.executeQuery(); 8 ps2.setString(1, desName); 9 rs2 = ps2.executeQuery(); 10 if (rs.next() && rs2.next()) {
这样写(分别创建两个Preparedstatement对象,分别执行各返回一个ResultSet对象然后进行rs.next()操作)就能运行通过。