Java MySQL SyntaxErrorException关于更新查询
我正在尝试使用Netbeans更新表中的字段。更新声明如下:Java MySQL SyntaxErrorException关于更新查询,java,mysql,netbeans,jdbc,Java,Mysql,Netbeans,Jdbc,我正在尝试使用Netbeans更新表中的字段。更新声明如下: String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/student_reg"; try { Class.forName(driver); Connection con = DriverManager.getConnection(url,"user","abc"); PreparedStatement state =
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/student_reg";
try {
Class.forName(driver);
Connection con = DriverManager.getConnection(url,"user","abc");
PreparedStatement state = con.prepareStatement("UPDATE supplier SET sname='" + txtname.getText()+"' , add='"+txtadd.getText()+"' WHERE sid ='" +txtid.getText() + "'");
state.executeUpdate();
JOptionPane.showMessageDialog(null, "Your Record sucessfully Updated");
}catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex);
}
但我得到了以下错误:
com.mysql.jdbc.exceptions.jdbc4.mysql语法异常
:
您的SQL语法有错误;检查手册
对应于您的MySQL服务器版本,以便使用正确的语法
第1行“add=kegalle”附近,其中sid=001
我该怎么解决呢?你需要像添加那样用反勾号进行转义
UPDATE supplier
SET sname='" + txtname.getText()+"', `add` = ...
here ---------------^---^
顺便说一句,您没有正确使用prepared语句。问题似乎在于您使用PreparedStatement的方式。
PreparedStatement state = con.prepareStatement("UPDATE supplier SET sname = ?, add = ? WHERE sid = ?");
state.setString(1,txtname.getText()); // sname (parameter 1)
state.setString(2,txtadd.getText()); // add (parameter 2)
state.setString(3,txtid.getText()); //sid (parameter 3) is actually a varchar?
state.executeUpdate();
当您使用PerparedStatement时,为什么不设置(…)调用而不是纯文本?@user2507358:首先你需要转义add
。然后你应该查看准备好的语句。用于Java和JDBC。请稍候。我使用JDBC连接制作了这条连接线。因此,我将把它完全作为另一个问题发布。请回答这篇文章。发布后,我将立即放置链接。