更新数据库jdbc上的现有Row

时间:2014-10-18 08:40:09

标签: java 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() );
}

2 个答案:

答案 0 :(得分:0)

你完全搞砸了查询,

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

应该是,

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

建议在执行之前打印查询,因为这样可以避免常见错误。另外,尝试使用Prepared Statements,因为你很容易受到sql注入

阅读此Prepared Statements and JDBC Drivers

答案 1 :(得分:0)

在研究小时之后,我找到了解决方案,我已经取代了这个

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