簡體   English   中英

更新數據庫jdbc上的現有行

[英]Updating existing Row on database jdbc

當我單擊按鈕時沒有錯誤顯示,但是數據庫上的表沒有更新。

String heh = jLabel17.getText();
try {
    stmt.executeUpdate("UPDATE books SET availability='"+"Unavailable"+"' where Book_title='"+heh+"'");
}catch (SQLException err) {
    System.out.println(err.getMessage() );
}

您完全搞砸了查詢,

stmt.executeUpdate("UPDATE books SET availability='"+"Unavailable"+"' where Book_title='"+heh+"'");

應該,

stmt.executeUpdate("UPDATE books SET availability='Unavailable' where Book_title='"+heh+"' ");

建議在執行之前打印查詢,因為這樣可以避免常見錯誤。 還要嘗試使用預處理語句,因為您的語句容易受到sql注入的攻擊

閱讀此准備語句和JDBC驅動程序

經過數小時的研究,我找到了解決方案,並更換了此解決方案

String heh = jLabel17.getText();

    try{
        stmt.executeUpdate("UPDATE books SET availability='"+"Unavailable"+"' where Book_title='"+heh+"'");
        }catch(SQLException err){
        System.out.println(err);
   }

使用此代碼

String heh = jLabel17.getText();

    try{
        con = DriverManager.getConnection("jdbc:derby://localhost:1527/Dafuq7","Dafuq7","Dafuq7");
                    // Creating Statement for query execution
                    stmt = con.createStatement();
                    // creating Query String
                    String query = "UPDATE books SET availability='NOT AVAILABLE' WHERE book_title='"+heh+"'";
                    // Updating Table
                    int rows = stmt.executeUpdate(query);
                    System.out.println(rows + " Rows Updated Successfully....");
   } catch (Exception e) {
        System.out.println(e.toString());
   }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM