Java中executeQuery()和executeUpdate()区别

一.概述:

        executeQuery()和executeUpdate()都是JDBC的方法,用于执行SQL语句

二.区别:

        1.executeQuery()方法用于执行select查询语句,它返回一个ResultSet对象,该对象包含与查询语句匹配的所有行。ResultSet对象可以用于遍历和访问查询结果。

例如:

	static ResultSet rs=null;
	static PreparedStatement pst=null;

//------------遍历学生数据库
	public void shouMysql()    {
		String sql="select * from  student ";
		try {
			pst = con.prepareStatement(sql);
			System.out.println("MySQL代码执行成功");
			rs = pst.executeQuery();//pst的executeQuery方法执行查询返回结果集存到rs ,返回值是指针指向开始首地址。
			while(rs.next()) {
		    		System.out.print("账号:"+rs.getString("code")+" \t");
			    	System.out.print("姓名:"+rs.getString("name")+" \t");
			    	System.out.print("密码:"+rs.getString("pwd")+" \t");
			    	System.out.println();
		    	}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}




        2.executeUpdate()方法用于执行INSERT、UPDATE和DELETE等修改数据库的操作语句,它返回一个整数值,表示受影响的行数。

例如:

		static PreparedStatement pst=null;
	
//删除数据 根据code,自己不可以删除自己
	public void DeletMysql() {
		Scanner sc=new Scanner(System.in);
		System.out.print("请输入要删除的账号:");
		
		String code=sc.nextLine();
		if(code!=id) {
			String sql="delete from student where code = '" + code + "'";
			try {
				pst = con.prepareStatement(sql);//创建pst对象
				pst.executeUpdate();//修改数据库表,把数据写入数据库
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				System.out.println("数据没有删除成功,可能原因sql语句,或者查询修改数据库都要用executeUpdate();");
			}//修改数据库表,把数据写入数据库
		}else {
			System.out.println("不可以删除自身请重写输入要删除账号");
			DeletMysql();
		}
		
	}
		

需要注意的是,executeUpdate()方法不能用于执行SELECT查询语句,如果尝试执行SELECT语句,将会抛出SQLException异常。同样地,executeQuery()方法也不能用于执行INSERT、UPDATE和DELETE等修改数据库的操作语句。

区别总结 :

改动数据库:executeUpdate()

只是看看 :executeQuery()

三.注意事项:

1. 使用之前需要先创建一个Statement对象或PreparedStatement对象,并将SQL语句作为参数传递给它们。

2. SQL语句的正确性非常重要。确保SQL语句语法正确,并且参数值正确绑定。

3. 在执行executeQuery()方法时,只能执行SELECT查询语句,不能执行INSERT、UPDATE和DELETE等修改操作语句。

4. 在执行executeUpdate()方法时,只能执行INSERT、UPDATE和DELETE等修改操作语句,不能执行SELECT查询语句。

5. 需要手动关闭ResultSet对象和Statement对象,以释放资源,可以使用try-with-resources语句或在finally块中关闭。

6. 对于executeQuery()方法返回的ResultSet对象,可以使用ResultSet对象的方法遍历和访问查询结果。

7. 对于executeUpdate()方法返回的整数值,表示受影响的行数,可以用于检查修改操作的结果。

8. 可以使用PreparedStatement对象来执行带有占位符的SQL语句,通过设置相应的参数值来防止SQL注入攻击。

9. 在执行executeUpdate()方法时,如果没有受影响的行数,可能是因为执行的SQL语句没有匹配的数据或语句写错了。

10. 需要确保数据库连接是有效的,并且具有适当的权限来执行SQL语句。

遵循这些注意事项可以帮助避免一些常见的错误和问题,并确保正确、安全地使用executeQuery()和executeUpdate()方法。

  • 12
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@纯牛奶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值