JDBC 更新语句在 Netbeans 中不起作用但在 SQL 中起作用

JDBC Update Statement not working in Netbeans but working in SQL

我从一个数据库中提取数据,执行一些检查并想更新另一个数据库中的 table。

我的 update.executeQuery 语句不起作用。但是,当我复制 SQL 中的语句字符串并执行它时,它确实有效。它有什么问题? (即使是方向也会帮助我)

创建更新字符串:

public static void createUpdateString() throws SQLException {

    try {
           updateString = "UPDATE ORDER_HEADER SET "
                   + "FRUIT=" + "'" + fruitName+ "',"
                   + "CUSTOMER_NAME =" + "'" + customerName + "'"
                   + " WHERE ORDER_NUMBER = TRIM(" + "'" + orderNumber + "')";

           updateData();
    }
    catch(SQLException e) {
        System.err.println("ERROR!: " + e.getMessage());
    }
}

执行更新查询:

public static void updateData() throws SQLException{
    try {
           conn.setAutoCommit(false);
           statementUpdate = conn.createStatement();
           statementUpdate.executeQuery(OrderObject.updateString);
           conn.commit();
           conn.setAutoCommit(true);
           statementUpdate.close();

    }
    catch(SQLException e) {
          System.err.println("Could not process query" + e.getMessage());
    }
}

这一行

          statementUpdate.executeQuery(OrderObject.updateString);

我觉得不对。尝试

          statementUpdate.executeUpdate(OrderObject.updateString);

相反。

UPDATE 语句不是查询,因此您不要将 executeQuery() 与它们一起使用。 executeQuery() return 是 ResultSet,但是使用 UPDATE 语句没有数据到 return。相反,您使用 executeUpdate()。 (请注意,您还使用 executeUpdate() 到 运行 INSERTDELETE 语句 - 在 Statement 个对象。)

数据库在这些情况下的行为因数据库而异。特别是,如果您尝试将 executeQuery()UPDATE 语句一起使用,MySQL JDBC 驱动程序将抛出异​​常并显示以下消息:

Can not issue data manipulation statements with executeQuery()