2017-05-08 120 views
0

我收到一个语法错误,但我确信我正在做的一切都是正确的。你可以看一下吗?在JDBC中的SQL查询中获取语法错误

String ORDER, DROP, CAR; 

      String Statement = "INSERT INTO WORKORDER" 
        + "(ORDER, DROPOFFDATE, COMPLETIONDATE) VALUES " 
        + "(?, ?, null);"; 

      //JOptionPane.showMessageDialog(frame, Statement, "Daisy Imports", 3); 
      try { 
       PreparedStatement PST = connection.prepareStatement(Statement); 
       ORDER = JOptionPane.showInputDialog("Please assign a order number for this order"); 
       int ORDERi = Integer.parseInt(ORDER); 
       DROP = JOptionPane.showInputDialog("Please Enter the date the car was dropped off (YYYY-MM-DD)"); 
       CAR = JOptionPane.showInputDialog("Enter the VIN for the car this work order is for"); 
       PST.setInt(1, ORDERi); 
       PST.setString(2, DROP); 
       PST.execute(); 
+0

我会考虑将'(?,?,null)'改为'(?,?,?)',并使用'PST.setObject(3,null)'而不是 – MadProgrammer

+0

我刚刚给出了一个镜头,同样的错误。 – MingZhou

+0

请在您的问题中包含确切的错误。这个问题虽然是'订单',但它需要引用,因为它是一个保留字。在大多数数据库系统中使用双引号,在MySQL中使用双引号;所以'“ORDER”'或'\'ORDER \'' –

回答

0

尝试在准备好的语句结尾处删除分号。

编辑:问题是,“订单”是一个保留字。

+0

我最初补充说,看看它是否会工作。删除它没有修复它。 – MingZhou

+3

从订单更改列名然后呢?可能是保留字? ...虽然不知道为什么它会让你创建表格。 –

+0

就是这样。这真的很奇怪,因为我在其他查询中使用过,但它没有打破它,直到我不得不使用inser。谢谢 – MingZhou