ConnUtil connUtil = new ConnUtil();
Connection conn= connUtil.getConnection();
PreparedStatement state=conn.prepareStatement("UPDATE STUDENTS SET name=?,username=?,password=? WHERE studentnumber=?;" );
state.setString(1, stuupdata.name);
state.setString(2, stuupdata.username);
state.setString(3, stuupdata.password);
state.setInt(4, stuupdata.studentnumber);
state.executeUpdate();老是提示ORA-00933: SQL 命令未正确结束    stuupdata是个参数类,里面参数肯定没问题,求大神指导!!!
ORA-00933: SQL 命令未正确结束 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1017)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:655)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:566)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:215)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:58)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:943)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1075)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3820)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3897)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1361)
at cn.com.njust.web.admin.StuUpdata.updata(StuUpdata.java:55)
at org.apache.jsp.jsp.stuupdatasuccess_jsp._jspService(stuupdatasuccess_jsp.java:87)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)

解决方案 »

  1.   

    哦忘了说我数据库时 ORACLE12G 最新版本,SQL语句单独拿出来的话完全没问题,在程序里就出错了!
      

  2.   

    你确定set的顺序是从1开始的?
      

  3.   

    "UPDATE STUDENTS SET name=?,username=?,password=? WHERE studentnumber=?;"谁教你JDBC的SQL语句里带分号的
      

  4.   

    我以前用MYSQL这样写完全没问题,这回换成oracle就成这样了,应该是从1开始的吧哦哦哦哦,确实是这样!!!谢谢!!!