我在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指定的值
答案 0 :(得分:1)
您传递给prepareStatement
的字符串包含4个占位符(?
),但您只为其中的2个(setInt
)提供了值。
答案 1 :(得分:0)
删除值部分。 UPDATE语句没有值部分。
"UPDATE item SET itemQyt=? WHERE itemID=?"
(VALUES是INSERT语句的一部分。)