今天遇到一個問題,不知道咋回事。
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()操作)就能運行通過。