这是我的代码。当我运行它时,我收到错误:
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);
}
}
}
}
答案 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(? ,?,?,?,?)“);