JDBC中Preparedstatement的executeQuery()函數問題


今天遇到一個問題,不知道咋回事。  

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()操作)就能運行通過。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM