mysql更新查询在java代码中无法正常工作

时间:2012-12-21 20:31:22

标签: java mysql sql-update

在mysql中,我有一个INVENTORY表,我在gui文本字段中将用户给出的num_of_items添加到mysql中的前一个num_of_items。我在我的java代码中编写了一个查询,如下所示..但它没有更新我的INVENTORY表..

try {
    st2 = conn.createStatement();
    rs=st2.executeQuery("select order_num,prod_name_in_order,num_of_items_in_order,cost_order from ORDER_DUP where order_num='"+ord_num+"'");
    int column=rs.getMetaData().getColumnCount();

    int j=0;
    while(rs.next())
    {
        for(int i=1;i<=column;i++)
        {
            System.out.print(rs.getObject(i)+"\t");
            product_name1 = (String) rs.getObject(2);
            x1 = rs.getInt(3);
            //int x=Integer.parseInt(num_of_items.trim());

        }
        product_name[j]=product_name1;
        x[j]=x1;
              j++;
        System.out.println();
    }
    for(int k=0;k<j;k++)
        st2.executeUpdate("update INVENTORY set num_of_items=num_of_items+'"+x[k]+"' where product_name='"+product_name[k]+"'"); //st2.close();
    //conn.close();
    System.out.printf("invy");

}
catch (SQLException e) {
    System.out.printf("error in updating inventory table(YES)");
    e.printStackTrace();
}

请帮帮我..我没弄错了! 感谢。

2 个答案:

答案 0 :(得分:0)

请勿在使用x[k]插入的变量值周围放置单引号。

您的查询应如下:

"update INVENTORY set num_of_items=num_of_items+"+x[k]+" where product_name='"+product_name[k]+"'"

答案 1 :(得分:0)

首先,缩小问题的根本原因,您是否尝试打印出最终语句String并在数据库中运行该命令?

System.out.println("update INVENTORY set num_of_items=num_of_items+'"+x[k]+"' where product_name='"+product_name[k]+"'");