Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SQL命令未正确结束更新_Java_Sql_Oracle - Fatal编程技术网

Java 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

当我尝试在Java上执行下面的脚本时,出现了以下异常:

SQL命令未正确结束

我正在使用JavaSwing和Oracle SQL

我的字符串:

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