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