更新表时出错[没有为参数3指定值]

时间:2012-01-27 17:26:47

标签: java sql struts1

我在netbeans 6.9中使用struts 1.3.8框架,我想使用preparedStatement更新数据库中的值。它不断给出一个错误(没有为参数3指定值),我不知道该参数是什么导致我通过定义id设置一个值。我很感谢你的辛勤工作,并希望你帮助我。

这是我的代码:

try{
    // update the item Qyt in the item table after checking it out
    PreparedStatement ps2 = (PreparedStatement) con.prepareStatement("UPDATE item SET itemQyt=? WHERE itemID=?"
             + " VALUES (?,?)");
    ps2.setInt(1, newQuantity);
    ps2.setInt(2, itemID);
    int updateRows = ps2.executeUpdate();
    ps2.close();

} catch (Exception e) {
    errors.add("SQLUpdatingItem", new ActionMessage("errors.SQLUpdatingItem"));
    System.out.println("ERROR Updating : Did not Update the itemQyt in the item table which the itemId is : " + itemID + " and the new Qyt is :" + newQuantity + " " + e);
}

这是错误消息:

  

错误更新:没有更新项目表中的itemQyt   itemId是:7,新的Qyt是:9 java.sql.SQLException:不   为参数3指定的值

2 个答案:

答案 0 :(得分:1)

您传递给prepareStatement的字符串包含4个占位符(?),但您只为其中的2个(setInt)提供了值。

答案 1 :(得分:0)

删除值部分。 UPDATE语句没有值部分。

"UPDATE item SET itemQyt=? WHERE itemID=?"

(VALUES是INSERT语句的一部分。)