Java SQL命令未正确结束更新
当我尝试在Java上执行下面的脚本时,出现了以下异常: SQL命令未正确结束 我正在使用JavaSwing和Oracle SQL 我的字符串:Java SQL命令未正确结束更新,java,sql,oracle,Java,Sql,Oracle,当我尝试在Java上执行下面的脚本时,出现了以下异常: SQL命令未正确结束 我正在使用JavaSwing和Oracle SQL 我的字符串: String sql= "update PROJEKT.PACJENT set IMIE='"+ jTextField9.getText() + "',NAZWISKO='"+ jTextField10.getText() + "',MIASTO='"+ jTextField11.getText() + "',ULICA='"+ jTextField12
String sql= "update PROJEKT.PACJENT set IMIE='"+ jTextField9.getText() + "',NAZWISKO='"+ jTextField10.getText() + "',MIASTO='"+ jTextField11.getText() + "',ULICA='"+ jTextField12.getText() + "',UBEZPIECZENIE=" + jTextField13.getText() + "' where PESEL='" + jTextField8.getText()+ "'";
因为,您错过了打开的
“
报价
UBEZPIECZENIE=" + jTextField13.getText() + "'
另外,您应该使用避免SQL注入。类似的方法应该适合您:
String updateSQL = "update PROJEKT.PACJENT set IMIE=?, NAZWISKO=?, MIASTO=?, ULICA=?, UBEZPIECZENIE=? where PESEL=?";
PreparedStatement preparedStatement = dbConnection.prepareStatement(updateSQL);
preparedStatement.setString(1, jTextField9.getText());
preparedStatement.setString(2, jTextField10.getText());
preparedStatement.setString(3, jTextField11.getText());
preparedStatement.setString(4, jTextField12.getText());
preparedStatement.setString(5, jTextField13.getText());
preparedStatement.setString(6, jTextField8.getText());
preparedStatement.executeUpdate();
System.out.println(sql)
并查看字符串的外观-这是调试它的最简单方法。但是你也应该考虑使用PreparedStatement,因为它消除了正确引用字符串的痛苦。你缺少了一个勾号。请学习如何使用PreparedStatement