2015-10-05 62 views
0

我从一个数据库提取数据,执行一些检查并希望更新另一个数据库中的表。JDBC更新声明在Netbeans中不起作用,但在SQL中工作

我的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()); 
    } 
} 
+0

“我的发言是:特别是,如果您尝试使用executeQuery()UPDATE声明MySQL JDBC驱动程序抛出具有以下消息的异常不工作“ - 你究竟是什么意思?抛出异常?没有效果?还有别的吗? –

回答

0

此行

  statementUpdate.executeQuery(OrderObject.updateString); 

看来我错了。尝试

  statementUpdate.executeUpdate(OrderObject.updateString); 

改为。

UPDATE语句不是查询,所以你不要使用executeQuery()与他们。 executeQuery()返回ResultSet,但UPDATE语句没有要返回的数据。相反,您使用executeUpdate()。 (请注意,您还可以使用executeUpdate()运行INSERTDELETE语句 - 有没有Statement对象的任何executeInsert()也不executeDelete()方法。)

数据库在这些情况下如何表现从一个数据库到另一个变化。

不能发出带有的executeQuery(数据操作语句)