"ORA-00933: SQL command not properly ended" 这段代码异常

"ORA-00933: SQL command not properly ended" Exception in this piece of code

我正在尝试从 Java 连接到 Oracle 19c 数据库。连接完成并成功。 我在 SQL Develeper 中 运行 相同的查询并且它正在工作。但是我在 Java 中的准备语句和 executeQuery() 中遇到异常。请帮帮我。

       Connection con=null;
        PreparedStatement pstmt=null;
        ResultSet rs=null;

        try{
        
        //Loading Driver
        Class.forName("oracle.jdbc.driver.OracleDriver"); 
        //Loading Connection
        con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521/orcl",dbUsername,dbPassword);     
        
        //Executing query;
        System.out.println("Connection Established");
        //Object to store result
        items=new ArrayList<Object>();
        
        queryString="SELECT * FROM HOMESQUAD WHERE EMP_MOBILE_NO='8308856606';";
        System.out.println("Query: "+queryString);
        if(queryString != null && !queryString.trim().equals("")) {
            System.out.println("Into P Statement If Loop");
            pstmt=con.prepareStatement(queryString);
            System.out.println("StateMent Prepared: "+pstmt.toString());
            rs=pstmt.executeQuery();
            System.out.println("Query Executed");
            while(rs!=null &&rs.next()) {
                items.add(constructLoginProps(rs));
            }
            if(rs !=null) {
                rs.close();
            }
            if(pstmt!=null) {
                pstmt.close();
            }
        }
    }
    catch(Exception e) {
        System.out.println("Exception Occured in aDBExecute:"+e.getMessage());
    }

    //constructLoginProps Function

    private HomesquadEmployee constructLoginProps(ResultSet rs) {
            HomesquadEmployee vo=new HomesquadEmployee();
            try {
                if(rs.getString("EMP_PASSWORD")!=null) {
                    vo.setEmpPassword(rs.getString("EMP_PASSWORD"));
                }
                if(rs.getString("EMP_ID")!=null) {
                    vo.setEmpId(rs.getString("EMP_ID"));
                }
                if(rs.getString("EMP_NAME")!=null) {
                    vo.setEmpName(rs.getString("EMP_NAME"));
                }
                if(rs.getString("EMP_MOBILE_NO")!=null) {
                    vo.setEmpMobileNo(rs.getString("EMP_MOBILE_NO"));
                }
            }
            catch(Exception e) {
                System.out.println("Exception Occured in buildLoginQuery: "+e.getMessage());
            }
            return(vo);
    }

    //HomesquadEmployee Class
    public class HomesquadEmployee {
        private String empId;
        private String empName;
        private String empMobileNo;
        private String empPassword;
        public HomesquadEmployee() {
        }
        public HomesquadEmployee(String empId, String empName, String empMobileNo, String empPassword) {
            this.empId = empId;
            this.empName = empName;
            this.empMobileNo = empMobileNo;
            this.empPassword = empPassword;
        }
        public String getEmpId() {
            return empId;
        }
        public void setEmpId(String empId) {
            this.empId = empId;
        }
        public String getEmpName() {
            return empName;
        }
        public void setEmpName(String empName) {
            this.empName = empName;
        }
        public String getEmpMobileNo() {
            return empMobileNo;
        }
        public void setEmpMobileNo(String empMobileNo) {
            this.empMobileNo = empMobileNo;
        }
        public String getEmpPassword() {
            return empPassword;
        }
        public void setEmpPassword(String empPassword) {
            this.empPassword = empPassword;
        }
    }

输出:

已建立连接

查询:SELECT * FROM HOMESQUAD_EMPLOYEE WHERE EMP_MOBILE_NO ='8308856606';

进入P语句If循环

已准备声明:oracle.jdbc.driver.OraclePreparedStatementWrapper@51aeb3e7

aDBExecute:ORA-00933 中发生异常:SQL 命令未正确结束

我在使用 oracle 数据库时遇到过这个问题,我通过简单地删除分号“;”解决了这个问题。从查询结束。 在你的情况下你应该改变这个
queryString="SELECT * FROM HOMESQUAD WHERE EMP_MOBILE_NO='8308856606';";
为了这

 queryString="SELECT * FROM HOMESQUAD WHERE EMP_MOBILE_NO='8308856606'";