1、错误描述
java.sql.SQLException: Can not issue data manipulation statements with executeQuery(). at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:996) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:935) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:924) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:870) at com.mysql.jdbc.StatementImpl.checkForDml(StatementImpl.java:472) at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1401) at com.you.sql.Student.commonMethod(Student.java:117) at com.you.sql.Student.insertStudent(Student.java:86) at com.you.sql.Student.main(Student.java:181)
2、错误原因
public static void insertStudent() { StringBuffer sql = new StringBuffer(); int j = 0; String str = "0"; for(int i=5;i<1000;i++) { ++j; if(i%2 == 0) { str = "0"; } else { str = "1"; } sql.append("insert into t_stu_info (").append(i).append(",").append(103+j+"").append(",") .append("zhangsan"+(i-4)).append(",").append(str).append(",") .append(Integer.parseInt(Math.round(Math.random()*10+20)+"")).append(",") .append("123"+i); } commonMethod(sql.toString()); }
/** * * @Title:Student * @Description: * @param sqlStu * @Date:2015年6月11日 上午12:25:56 * @return :void * @throws */ public static void commonMethod(String sqlStu) { StringBuffer sql = new StringBuffer(); sql.append(sqlStu); Connection conn = null; Statement stat = null; ResultSet rs = null; try { try { Class.forName(DRIVER_CLASS); } catch (ClassNotFoundException e) { e.printStackTrace(); } conn = DriverManager.getConnection(URL, USER, PASSWORD); stat = conn.createStatement(); rs = stat.executeQuery(sql.toString()); while(rs.next()) { String stuId = rs.getString("stu_id"); String stuName = rs.getString("stu_name"); String stuSex = rs.getString("sex"); String stuAge = rs.getString("stu_age"); String stuPhone = rs.getString("stu_phone"); System.out.println("学号:"+stuId+"----"+"姓名:"+stuName+"----"+"性别:"+stuSex+"---"+"年龄:"+stuAge+"----"+"电话:"+stuPhone); } } catch (SQLException e) { e.printStackTrace(); } finally { if(rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if(stat != null) { try { stat.close(); } catch (SQLException e) { e.printStackTrace(); } } if(conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
3、解决办法
由于在执行插入操作时,调用了executeQuery方法,出现错误;插入操作应该调用executeUpdate方法
int result = stat.executeUpdate(sql.toString());