簡體   English   中英

通過Java語法錯誤進行MySQL查詢

[英]MySQL Query Through Java Syntax Error

我有這段代碼將記錄插入到account表中:

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);
}

這工作得很好,並將記錄插入到account表中。 接下來,我有這段代碼旨在更新包含6個字段的orderstable表。 訂單號,帳號,發票號,說明,金額,增值稅。 訂單號字段已設置為自動遞增代碼:

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語法錯誤的原因可能是什么?

列名稱不能帶有空格,如果這樣做,則需要在反引號中

Insert into orderstable 
(`Order Number`, AccNo, `Invoice Number`, Description, Amount, VAT)

在此處查看更多詳細信息http://dev.mysql.com/doc/refman/5.0/en/identifiers.html

自動遞增字段order number不應包含在屬性部分中。

您的查詢應如下所示

String query = "Insert into orderstable (AccNo, Invoice Number, Description, Amount, VAT) values (?, ?, ?, ?, ?)"; 

order number列不應包含在字段列表中,因為它是自動遞增的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM