2016-07-07 54 views
0

你好,我需要做的與數據庫的2個職位中java.Firstly我做了1條語句,但之後我讀到這裏提示他們說,我應該使用2 statement.But雖然它ResultSet關閉錯誤後仍然不允許操作。的ResultSet後不允許SQLEXCEPTION操作關閉錯誤堅持

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(); 
    } 
+0

看你的代碼,你需要3個Statement對象,你'stmt2'對象也越來越在使用while循環 – Sanjeev

+0

謝謝你reply.But我不明白你什麼意思 –

回答

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循環執行查詢使用一個單獨的語句對象。

希望這有助於

+0

非常感謝你它的作品很多。 –

+0

高興的是幫助你..玩得開心:)編碼 – Sanjeev

相關問題