我正在使用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服务器版本相对应的手册以使用正确的语法
答案 0 :(得分:1)
您的名字应该用"('"+name+"'
引用('
处用单引号引起来)。其他任何string
类型的值(电子邮件和地址)也一样。
此外,我宁愿使用准备好的语句,以便为您完成报价等。
答案 1 :(得分:1)
MariaDB插入示例:
将INERT人(名字,姓氏)插入VALUES(“约翰”,“母鹿”);
以您的情况(JDBC)更改为使用bind variables:
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);