Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.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
JavaSQLException-ORA-0933:命令未正确结束_Java_Sql - Fatal编程技术网

JavaSQLException-ORA-0933:命令未正确结束

JavaSQLException-ORA-0933:命令未正确结束,java,sql,Java,Sql,我对下面方法中的SQL字符串查询感到困惑。它显示了绝对正确的结果,尽管是谁在oracle数据库中创建了行,但引发了以下异常:ORA-0933:命令未正确结束。我试图找到解决办法,但没有结果 出什么事了?你能帮我吗 提前谢谢您,对于英语不好,我深表歉意 public void insertMemberAction() { String query = "INSERT INTO MEMBERS VALUES(" + jMnoTxt.getText() + ", '" +

我对下面方法中的SQL字符串查询感到困惑。它显示了绝对正确的结果,尽管是谁在oracle数据库中创建了行,但引发了以下异常:ORA-0933:命令未正确结束。我试图找到解决办法,但没有结果

出什么事了?你能帮我吗

提前谢谢您,对于英语不好,我深表歉意

public void insertMemberAction() {

     String query = "INSERT INTO MEMBERS VALUES(" + jMnoTxt.getText() + ", '" + 
          jLastnameTxt.getText() + "', '"  + jFirstnameTxt.getText() + "', '" + 
          jAddressTxt.getText() + "', '"   + jRegistrationDateTxt.getText() + "')";

        java.sql.Statement insertStmt;

        try {

            insertStmt = DvdClubJFrame.con.createStatement();
            insertStmt.executeUpdate(query);
            insertStmt.close();

        } catch (java.sql.SQLException e) {
            javax.swing.JOptionPane.showMessageDialog(this, e.getMessage());

        }

}

使用PreparedStatements,或使用apache common的
StringEscapeUtils

尝试添加“;”来转义参数在末尾,您应该使用准备好的语句,正如Freaky Thommi所说的,尝试在查询末尾添加分号。另外,为什么传递的第一个值没有引号?以及
query
value在
executeUpdate()调用之前的外观如何?您可能会错过一些
,或者某个参数本身的值中有
,或者
jMnoTxt
是空字符串?正如其他人所说,使用
PreparedStatement
@DanTemple:那是错误的。如果您传递了一个
作为
语句的字符串的一部分。executeUpdate()
将导致“非法字符”错误。仅使用PreparedStatement。如果您逃避参数,您将忘记一个。是的,我同意,PreparedStatement是最佳实践。是的,一路使用PreparedStatement,不要用非常不安全的语句混日子,除非您喜欢修复SQL注入黑客