尝试使用Java写入数据库时SQL语法出错

尝试使用Java写入数据库时SQL语法出错,java,sql,jdbc,syntax-error,mariadb,Java,Sql,Jdbc,Syntax Error,Mariadb,我正在使用java中的mvc连接到数据库。setData方法无法工作,也不确定原因。我的数据库被称为checker和表信息。连接工作正常,可以将数据从db读取到textfields,但当我将数据放入textfields时,会出现错误 public static void setData() { try { String query2 = "INSERT INTO info(name,dob,age,email,address) VALUES"+ "("+n

我正在使用java中的mvc连接到数据库。setData方法无法工作,也不确定原因。我的数据库被称为checker和表信息。连接工作正常,可以将数据从db读取到textfields,但当我将数据放入textfields时,会出现错误

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);
    }
}
view类具有addBtn按钮,该按钮尝试将数据设置为db

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());
}
弹出此错误:

sql.SQLSyntaxErrorException:您的sql语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解在“taylor,01-03-04,14,jt@gmail.com,哈里斯大道123号),位于1号线


你的名字应该用引号引到
”(“+name+”
(这里有一个单引号
)。这同样适用于任何其他
字符串
类型值-电子邮件和地址


此外,我更愿意使用事先准备好的语句,因此将为您提供报价等。

您应该将您的姓名引用为
”(“+name+”
(此处有一个引号
)。这同样适用于任何其他
字符串
类型值-电子邮件和地址

此外,我更愿意使用事先准备好的声明,因此将为您提供报价等。

插入示例:

在person(名字、姓氏)中插入值(“John”、“Doe”)

在您的情况下(JDBC)更改为使用:

插入示例:

在person(名字、姓氏)中插入值(“John”、“Doe”)

在您的情况下(JDBC)更改为使用:


您的名字应该在问题旁边加上引号“”(“+name+””`(这里有一个单引号
),因为您的代码容易受到SQL注入的攻击。您永远不应该包含用户可以输入的值)使用一个准备好的statemetn来填充变量。很好,现在可以了,谢谢。你应该在你的问题旁边加上你的名字“”(“+name+”)”(这里有一个单引号
),你的代码很容易受到SQL注入的影响。你不应该包含值(用户可以输入)到您的SQL语句。使用准备好的statemetn填充变量。很酷,现在可以了,谢谢。
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);