有谁能在这份准备好的声明中找出我做错了什么?

时间:2011-12-20 17:26:45

标签: java sql jdbc

我为数据库访问做了一个准备好的声明,虽然它很有用但我不确定是什么问题。

它应该做的是取整数和字符串并根据此更新数据库。

这是代码。 与DB本身的连接有效,我知道这可以执行“正常”语句。

public void updateShipment(int shipmentNumber, String currentLocation)
        throws SQLException {

    String sql = "UPDATE shipments SET current_node=? WHERE shipment_id=?";
    con.setAutoCommit(false);
    pre = con.prepareStatement(sql);
    pre.setInt(1, shipmentNumber);
    pre.setString(2, currentLocation);
    pre.executeUpdate();
    con.commit();
    pre.close();
    con.setAutoCommit(true);
}

2 个答案:

答案 0 :(得分:9)

设置参数1和2时看起来很混乱。你的意思是:

pre.setString(1, currentLocation);
pre.setInt(2, shipmentNumber);

答案 1 :(得分:5)

你混合参数,这应该是正确的代码

pre.setInt(2, shipmentNumber);
pre.setString(1, currentLocation);