SQLEXCEPTION在ResultSet关闭错误仍然存​​在后不允许操作

时间:2016-07-07 11:55:44

标签: java netbeans sqlexception

你好我需要在java中用数据库做2个活动作业。首先我做了1个语句但是在我读到这里的提示后他们说我应该使用2个语句。但是在ResultSet关闭错误之后它仍然得到操作不被允许

try{
        Class.forName("com.mysql.jdbc.Driver");
 }
 catch(ClassNotFoundException e){
      System.err.println("Driver yok");
        return;
 }
 Connection con=null;
    try{
     con=DriverManager.getConnection("jdbc:mysql://localhost:3306/kutuphane","root","");
     System.out.println("Veritabnı baglandıldı");
     Statement stmt=con.createStatement();       
     String strSQL="UPDATE emanetler SET IADETARIH='"+strdate+"' WHERE KISIAD='"+jTextField1.getText()+"'    "   
     Statement stmt2=con.createStatement();
     stmt.execute(strSQL);
     ResultSet rs=stmt2.executeQuery("SELECT * FROM kitaplar");      


while(rs.next()){
    if(rs.getString("KITAPAD").equals(jTextField2.getText())){
        strSQL="UPDATE kitaplar SET KITAPADET="+rs.getInt("KITAPADET")+"+1 WHERE KITAPAD='"+jTextField2.getText()+"'          ";
        stmt2.execute(strSQL);
    }    
}       
            stmt.close();
         stmt2.close();
        }
     catch(SQLException e){
         System.out.println("Veritabanı baglanmadi");
          e.printStackTrace();
     }

1 个答案:

答案 0 :(得分:0)

首先,您使用stmt2对象

ResultSet rs=stmt2.executeQuery("SELECT * FROM kitaplar");

然后在while循环中

strSQL="UPDATE kitaplar SET KITAPADET="+rs.getInt("KITAPADET")+"+1 WHERE KITAPAD='"+jTextField2.getText()+"'          ";
stmt2.execute(strSQL);

必须更正这一点,以便在While循环中使用单独的Statement对象来执行查询。

希望这有帮助