我为数据库访问做了一个准备好的声明,虽然它很有用但我不确定是什么问题。
它应该做的是取整数和字符串并根据此更新数据库。
这是代码。 与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);
}
答案 0 :(得分:9)
设置参数1和2时看起来很混乱。你的意思是:
pre.setString(1, currentLocation);
pre.setInt(2, shipmentNumber);
答案 1 :(得分:5)
你混合参数,这应该是正确的代码
pre.setInt(2, shipmentNumber);
pre.setString(1, currentLocation);