更新java数据库中的项目总数

更新java数据库中的项目总数,java,jdbc,Java,Jdbc,我在数据库中有一个给定数量的项目。我需要根据我输入的金额(qtyPurchased)更新该数量。例如,项目有50个数量,然后我购买了5个,因此新数量应该返回55个,但是使用代码我只返回5个 这就是我所拥有的: public void purchased(int qtyPurchased) throws SQLException { // TODO: Update the ProductsDB table's quantity for this // object's produc

我在数据库中有一个给定数量的项目。我需要根据我输入的金额(qtyPurchased)更新该数量。例如,项目有50个数量,然后我购买了5个,因此新数量应该返回55个,但是使用代码我只返回5个

这就是我所拥有的:

public void purchased(int qtyPurchased) throws SQLException {
    // TODO: Update the ProductsDB table's quantity for this
    // object's product code.
    try (Connection conn = SimpleDataSource.getConnection()) {
        try (PreparedStatement stat = conn.prepareStatement(
                "UPDATE ProductsDB SET Quantity = ? WHERE Product_Code = ?")) {
            stat.setInt(1, qtyPurchased);
            stat.setString(2, productCode);
            stat.execute();
        }
    }

}
我试着做:

    stat.setInt(1, qty + qtyPurchased);

但总是会出错。请帮忙!谢谢

您需要增加数量,并使用增加的值更新数据库,如下所示

 public void purchased(int qtyPurchased) throws SQLException {
    // TODO: Update the ProductsDB table's quantity for this
    // object's product code.
    try (Connection conn = SimpleDataSource.getConnection()) {
        try (PreparedStatement stat = conn.prepareStatement(
                (UPDATE ProductsDB SET Quantity = Quantity + ? WHERE Product_Code = ?)) {
            stat.setInt(1, qtyPurchased);
            stat.setString(2, productCode);
            stat.execute();
        }
    }

}

另一个选项是获取数量并将其存储在变量中,然后递增该数量并将其发送到dB。这样做的好处是可以在应用程序的其他区域使用存储在var中的新值。

为什么不增加SQL查询中的数量?(
updateproductsDB SET Quantity=Quantity+?其中Product\u code=?
)我还没有测试它,但我认为它应该可以工作。错误是什么?你能帮我贴一下跟踪记录吗?“数量”从何而来?@Dorian的回答是正确的。现在,您总是将数量设置为qtyPurchased的值,而不是当前数量加上qtyPurchased。