2017-10-28 1 views
2

Ich versuche, eine vorbereitete Anweisung in eine Fahrzeugtabelle einzufügen. This is the table shown in PHPMyAdmin.JDBC Prepared Statement Syntax Error

Das ist mein Java-Code

try { 
     String sql = "INSERT INTO vehicle (vin, serial, make, model, year, reg.no., status) VALUES (?, ?, ?, ?, ?, ?, ?)"; 
     PreparedStatement statement = con.prepareStatement(sql); 
     statement.setString(1, vin); 
     statement.setString(2, serial); 
     statement.setString(3, make); 
     statement.setString(4, model); 
     statement.setInt(5, 10); 
     statement.setInt(6, 17); 
     statement.setString(7, status); 
     System.out.println(statement.toString()); 

     int rowsInserted = statement.executeUpdate(); 
     if (rowsInserted > 0) { 
      System.out.println("A new user was inserted successfully!"); 
     } 
    } catch (Exception ex) { 
     System.out.println(ex); 
    } 

und dies ist der resultierende Fehler

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' status) VALUES ('dfg', 'dfgfg', 'fg', 'sd564', 10, 17, 'dsf')' at line 1 

ich ahnungslos bin. Hat es damit zu tun, dass ich keinen Wert für die Primärschlüssel-Spalte "id" in der Tabelle übergebe?

Antwort

0

reg.no. ist kein gültiger Spaltenname. Wenn Sie es wirklich verwenden müssen, sollten Sie es angeben:

INSERT INTO vehicle (vin, serial, make, model, year, `reg.no.`, status) 
-- Here ---------------------------------------------^-------^ 
VALUES (?, ?, ?, ?, ?, ?, ?)"; 
Verwandte Themen