У меня есть этот кусок кода, который вставляет записи в таблицу счетов:MySQL Query через Java Синтаксис ошибки
String accNumber = jTextField5.getText();
String accName = jTextField4.getText();
String accAddress1 = jTextField3.getText();
String accAddress2 = jTextField2.getText();
String accCity = jTextField6.getText();
String accCounty = jTextField7.getText();
String accPostCode = jTextField9.getText();
String accContact = jTextField8.getText();
String query = "Insert into accounts (AccNo, name, address, address2, address3, City, County, PostCode, contact) values (?, ?, ?, ?, ?, ?, ?, ?, ?)";
try{
connect.pst = connect.con.prepareStatement(query);
connect.pst.setString(1, accNumber);
connect.pst.setString(2, accName);
connect.pst.setString(3, accAddress1);
connect.pst.setString(4, accAddress2);
connect.pst.setString(5, null);
connect.pst.setString(6, accCity);
connect.pst.setString(7,accCounty);
connect.pst.setString(8, accPostCode);
connect.pst.setString(9, accContact);
connect.pst.execute();
JOptionPane.showMessageDialog(null, "Saved");
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
Это работает просто отлично и вставляет записи в таблицу счетов. Затем у меня есть этот фрагмент кода, который предназначен для обновления таблицы orderstable, содержащей 6 полей; Номер заказа, AccNo, Номер Incvoice, Описание, Сумма, НДС. Поле Номер заказа был установлен автоматический инкремент Код:
String accNumber = jTextField29.getText();
String invNo = jTextField20.getText();
String description = jTextField21.getText();
String vat = jTextField22.getText();
String amount = jTextField23.getText();
String query = "Insert into orderstable (Order Number, AccNo, Invoice Number, Description, Amount, VAT) values (?, ?, ?, ?, ?, ?)";
try{
connect.pst = connect.con.prepareStatement(query);
connect.pst.setString(1, "3");
connect.pst.setString(2, accNumber);
connect.pst.setString(3, invNo);
connect.pst.setString(4, description);
connect.pst.setString(5, amount);
connect.pst.setString(6, vat);
connect.pst.execute();
JOptionPane.showMessageDialog(null, "Saved");
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
Этот код выше возвращает ошибку синтаксиса SQL. Я не знаю, почему. В чем причина этой синтаксической ошибки SQL?
, как вы сказали, номер заказа на автоматическое приращение, так что вы можете вставить строку с указанным номером заказа (вы не должны включать это вообще) – nafas
проблема связана с вашими именами полей 'Номер заказа, AccNo, номер счета', вы не можете использовать пробелы в именах – tarzanbappa