在java中运行SQL更新语句

时间:2013-04-06 11:14:14

标签: jdbc sql-update execute

有很多与此主题相关的问题,但我无法找到解决问题的方法。 我有一个“产品”表,我试图在netbeans中更新。 SQL语句在SQL dev中工作,我已经仔细检查了我的连接等。

update products
set pvolume = 2, pprice = 15
where productid = 3;

输出:更新了1行。

但在netbeans中运行它将无法执行。如果我错过了一些小的语法问题,我道歉,但我真的需要帮助这个方法。

public boolean editProduct(int ID, String name, int volume, int quantity, String description, int price) {
    boolean success = false;
    Connection con = ConnectionTools.getInstance().getCurrentConnection();
    String SQLString1 = "UPDATE products "
                        + "SET pname = ?, "
                        + "pvolume = ?, "
                        + "pquantity = ?, "
                        + "pdescription = ?, "
                        + "pprice = ? "
                        + "WHERE productID = ?";
    PreparedStatement statement = null;
    try {
        statement = con.prepareStatement(SQLString1);
        statement.setString(1, name);
        statement.setInt(2,volume);
        statement.setInt(3, quantity);
        statement.setString(4, description);
        statement.setInt(5, price);
        statement.setInt(6, ID);
        statement.executeUpdate();
        success = true;
    }catch (Exception e){
        System.out.println("Insertion error!");
        System.out.println(e.getMessage());
    }finally {
        try {
            statement.close();
        } catch (SQLException e) {
            System.out.println("Statement close error!");
            System.out.println(e.getMessage());
        }
    }
    return success;
}

运行调试它似乎运行try至statement.setInt(6,ID),但随后不执行。这是输出:

插入错误! ORA-00971:缺少SET关键字

任何帮助/建议将不胜感激!感谢

1 个答案:

答案 0 :(得分:0)

您必须使用括号:update products set (pvolume = 2, pprice = 15) where productid = 3