Java 有人能找出我在这份事先准备好的声明中做错了什么吗?

Java 有人能找出我在这份事先准备好的声明中做错了什么吗?,java,sql,jdbc,Java,Sql,Jdbc,我为DB access做了一份准备好的声明,但它不起作用。。我真的不确定问题出在哪里 它应该做的是获取一个整数和一个字符串,并根据此更新数据库 这是代码。 数据库本身的连接是有效的,我知道这是因为我可以执行“正常”语句 public void updateShipment(int shipmentNumber, String currentLocation) throws SQLException { String sql = "UPDATE shipments SET

我为DB access做了一份准备好的声明,但它不起作用。。我真的不确定问题出在哪里

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

这是代码。 数据库本身的连接是有效的,我知道这是因为我可以执行“正常”语句

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);
}

在设置参数1和参数2时,它们似乎混淆了。你是说:

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

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

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

嗯,它不会向数据库发送任何更新。在sqlite中测试了sql本身,它可以工作,但是通过java可以工作,没有给出任何异常。您的确切问题是什么?你犯了什么错误?通过配置JDBC驱动程序,尝试记录发送到数据库的确切语句。如果在此处解决了@那么您需要通过单击answerright旁边的右键标记来标记答案,这实际上就是问题的答案!第一次在这里发布:)谢谢你的信息!呃,这让我有点尴尬。。。是的,现在可以用了。我怎么会错过这样一件简单的事情呢?:)谢谢