我正在使用Java对一些数据库事务进行编码。我正在使用Java发送查询。我认为它没有问题。而且,如果我在提示符下发送查询,则它正在工作。

此方法正在更新书籍数量。

 private static void updateBquantity(int bqt, String bname) {
    Connection con = makeConnection();
    try {
        Statement stmt = con.createStatement();
        System.out.println(bqt + " " +bname);
        //this part is making problem
        stmt.executeUpdate("update books set bookquantity = bookquantity -" + bqt + "where bookname = '" + bname + "';");
        System.out.println("<book quantity updated>");
    } catch (SQLException e) {
        System.out.println(e.getMessage());
        System.exit(0);
    }

    stmt.executeUpdate("update books set bookquantity = bookquantity -" + bqt + "where 도서이름 = '" + bname + "';");


这部分出了问题。

使用此表单的其他查询正在运行。

编译器说:


  您的SQL语法有误。检查手册
  对应于您的MySQL服务器版本以使用正确的语法
  第1行的'bookname ='Davinci Code'附近


帮我。

最佳答案

我对bookname = 'Davinci Code感到困惑,查询中的书名在哪里?无论如何,在此查询中,您在where之前错过了空格,请尝试以下操作:

stmt.executeUpdate("update books set bookquantity = bookquantity -" + bqt + " where 도서이름 = '" + bname + "';");

09-11 14:45