SQL数据库连接中的java.sql.SQLSyntaxErrorException

时间:2018-06-13 08:12:30

标签: java mysql jdbc

这是我的代码。当我运行它时,我收到错误:

  

java.sql.SQLSyntaxErrorException:您的SQL中有错误   句法;查看与MySQL服务器版本对应的手册   在'第1行'附近使用正确的语法

有人可以帮帮我吗?

form_()
{
    setSize(265,500);
    setVisible(true);
    setLayout(new FlowLayout());
    add(l1);
    add(t1);
    add(l2);
    add(t2);
    add(l3);
    add(t3);
    add(l4);
    add(t5);
    add(l5);
    add(t4);
    add(b);
    b.addActionListener(this);

}

@Override
public void actionPerformed(ActionEvent e) {
    if(e.getSource()==b) {
        int x = 0;
        String s1 = t1.getText();
        String s2 = t2.getText();
        String s3 = t3.getText();
        char[] c = t5.getPassword();
        String s5 = new String(c);
        String s4 = t4.getText();


        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/db?useSSL=false", "******", "********");

            PreparedStatement ps = con.prepareStatement("INSERT INTO reg1 values(?,?,?,?,?");
            ps.setString(1, s1);
            ps.setString(2, s2);
            ps.setString(3, s3);
            ps.setString(4, s4);
            ps.setString(5, s5);
            int rs = ps.executeUpdate();
            x++;
            if(x>0)
            {
                JOptionPane.showMessageDialog(b,"Data saved Successfully");
            }
        } catch (Exception ex) {
            System.out.println(ex);
        }
    }
}
}

3 个答案:

答案 0 :(得分:1)

我想你忘了"INSERT INTO reg1 values(?,?,?,?,?"中的括号 它应该是这样的:"INSERT INTO reg1 values(?,?,?,?,?)"

答案 1 :(得分:0)

你搞砸了parathesis(SQL语法)。之后添加1 ')' 最后?。这导致了SQLSyntaxErrorException

我更新了代码段:

PreparedStatement ps = con.prepareStatement("INSERT INTO reg1 values(?,?,?,?,?)");
            ps.setString(1, s1);
            ps.setString(2, s2);
            ps.setString(3, s3);
            ps.setString(4, s4);
            ps.setString(5, s5);

答案 2 :(得分:0)

con.prepareStatement(“ INSERT INTO reg1 values(?,?,?,?,?,?”);这是您的代码中的错误。您应该尝试使用这种方式con.prepareStatement(“ INSERT INTO reg1 values(? ,?,?,?,?)“);