• java.sql.SQLException: Can not issue data manipulation statements with executeQuery().


    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());

  • 相关阅读:
    nginx缓存实战
    单机编排之Docker Compose
    NGINX镜像的制作
    k8s的kube-proxy
    k8s应用环境
    k8s ansible部署部署文档
    部署docker镜像仓库及高可用
    openstack高可用集群20-openstack计算节点宕机迁移方案
    openstack 租户控制台修改虚拟机账户密码
    如何修改openstack虚拟机密码
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/6775717.html
Copyright © 2020-2023  润新知