簡體   English   中英

嘗試使用Java寫入數據庫時​​SQL語法錯誤

[英]Error in SQL syntax when trying to write to the database with Java

我正在使用Java中的mvc連接數據庫。 setData方法似乎無法正常工作,並且不確定原因。 我的數據庫稱為檢查器和表信息。 連接工作正常,可以從db讀取數據到文本字段,但是當我將數據放入文本字​​段時,出現錯誤。

public static void setData()
{
    try
    {
        String query2 = "INSERT INTO info(name,dob,age,email,address) VALUES"+
    "("+name+","+dob+","+age+","+email+","+address+")";

        statement.executeUpdate(query2);
    }catch(Exception ex)
    {
        System.out.println(ex);
    }
}

視圖類具有試圖將數據設置為db的addBtn按鈕。

public void actionPerformed(ActionEvent e)
{
    conn.name = nameBox.getText();
    conn.dob = nameBox.getText();
    conn.age = ageBox.getText();
    conn.dob = dobBox.getText();
    conn.email = email.getText();

    conn.setData();
    System.out.println(nameBox.getText()+" "+ dobBox.getText()+" "+
    ageBox.getText()+" "+ email.getText()+" "+addrBox.getText());
}

出現此錯誤:

java.sql.SQLSyntaxErrorException:您的SQL語法有錯誤; 在第1行的'taylor,01-03-04,14,jt @ gmail.com,123 harris blvd)'附近檢查與您的MariaDB服務器版本相對應的手冊以使用正確的語法

你應該把你的名字報"('"+name+"' (有單引號出現' )這同樣適用於任何其他。 string類型的值-電子郵件和地址。

此外,我寧願為此使用准備好的語句,因此將為您完成報價等。

MariaDB插入示例:

INSERT INTO person(first_name,last_name)VALUES('John','Doe');

在您的情況下(JDBC)更改為使用綁定變量

try {
    String query2 = "INSERT INTO info(name,dob,age,email,address) VALUES(?,?,?,?,?)";
    statement.setString(1, name);        
    statement.setString(2, dob);        
    statement.setString(3, age);        
    statement.setString(4, email);        
    statement.setString(4, address);        
    statement.executeUpdate(query2);

暫無
暫無

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

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