strSql="delete from customers where id=2";
Connection myConnection=(Connection)DBConnection.connectToDB();
PreparedStatement pStmt=null;
pStmt=myConnection.prepareStatement(strSql);
myConnection.setAutoCommit(false);

pStmt.execute();
myConnection.commit();
执行时报下面这个错:
Can not issue data manipulation statements with executeQuery().
可是我没有用executeQuery()啊,为什莫出这个错误呢。
改成pStmt.executeUpdate();也是报这个错。为什莫呢查了半天也没搞定,各位帮忙看下。

解决方案 »

  1.   


    java.sql.SQLException: Can not issue data manipulation statements with executeQuery().
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
    at com.mysql.jdbc.Statement.checkForDml(Statement.java:409)
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1319)
    at WellcomeCustomer.Model.DepartmentBean.deleteDepartment(DepartmentBean.java:259)
    at WellcomeCustomer.Action.DepartmentDeleteAction.execute(DepartmentDeleteAction.java:33)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1158)
    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at WellcomeCustomer.Filter.EncodingFilter.doFilter(EncodingFilter.java:21)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
    at java.lang.Thread.run(Thread.java:619)
    这是完整的错误信息。多谢
      

  2.   

    查了下,网上很多报这个错的都是因为用了executeQuerey(),可是我没有用啊,怎莫报出这个错误呢
      

  3.   

    是DepartmentBean.java:259行调用executeQuery时候出的错误,不一定是你列出来的这里出异常的
      

  4.   

    这就是 DepartmentBean.java:259行 :mypStmt.executeUpdate(strSql);
    不好意思,对eclipse不是太熟,刚把标尺显示出来
      

  5.   

    mypStmt.executeUpdate(strSql);这行上加断点debug,估计最终跑的class就不是你改的这里