在线上项目日志中出现了如下异常。
Caused by: java.sql.SQLException: Can not issue data manipulation statements with executeQuery().
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.StatementImpl.checkForDml(StatementImpl.java:412)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1297)
at com.daojia.spat.dbconnectionpool.dbms.StatementWrapper.executeQuery(StatementWrapper.java:76)
at com.daojia.spat.dao.monitor.DAOExcute.executeQuery(DAOExcute.java:82)
出现该错误的原因是进行insert,delete,update操作的时候使用了excecuteQuery()方法,而不是excecuteUpdate()方法,网上总结如是说:
executeQuery()语句是用于产生单个结果集的语句,如select语句,在什么情况下用,当你的数据库已经保存了数据后,要进行查询了。
executeUpdate(),用于执行insert、update或者delete语句,返回值一个表示受影响的行数,即更新值
execute()运行语句,返回是否有结果集。