Hallo Ich habe ein Problem mit meiner Syntax in meinem Java-Code. Ich habe eine tableview
, die ihre Daten aus einer SQL-Datenbank bezieht. Ich habe 3 Tabellen in der Datenbank book
, customer
, order
erstellt. Wenn ich auf eine Schaltfläche klicke, nehme ich die ausgewählten Bücher und füge sie zur Tabelle order
hinzu.
Hier ist der Code aus dem Hauptprogramm (die Methode von db Aufruf):Java JDBC Derby Syntax Fehler
if(table.getSelectionModel().getSelectedItems().iterator().hasNext()) {
db.insertOrder(new Bestellung(customerid,table.getSelectionModel().getSelectedItems().iterator().next()));
Die Tabelle book
ist festgelegt. Nur die zwei anderen Tabellen customer
, order
sind dynamisch.
Das Problem:
Ich schaffe die Werte in der Tabelle order
wie diese
String ct = "CREATE TABLE Order (" + "Order_Id integer generated always as identity, " + "CUSTOMER_ID BIGINT" + "ISBN, CHAR(13) " + "PRIMARY KEY(Order_Id))";
und so weiter ...
ich einfügen in order
Tabelle wie folgt. (Hier ist die Syntax Problem in der String i
, die die Position ist, wo der Compiler sagt, es funktioniert nicht ..)
String i = "INSERT INTO ORDER(CUSTOMER_ID,ISBN), VALUES(?,?)";
Connection conn = null;
PreparedStatement stmt = null;
try {
conn = DriverManager.getConnection(connString);
stmt = conn.prepareStatement(i);
conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
stmt.setLong(1, order.getCustomerId());
stmt.setString(2, order.getBuch().getISBN());
stmt.executeUpdate();
} catch (SQLException e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
finally {
try {
if (stmt != null)
stmt.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
und hier ist die Syntax-Fehler, die ich
Syntax error: Encountered "ORDER" at line 1, column 13.
Also habe, wie zu tun Ich muss meine Syntax in der string i
korrigieren? Hat jemand irgendwelche Ideen?
können Sie eine Tabelle mit dem Namen Order erstellen? –
Oh, der Name 'Bestellung' war auch nicht möglich. Scheint, als ob dieses Wort in SQL – Ikarus
reserviert ist, habe ich es geändert. jetzt funktioniert es dank – Ikarus