怎么理解JDBC中的executeupdate 和executeQuery方法?

JDBC中经常用到executeupdate 和executeQuery,查阅Java8文档可知前者返回int,后者返回ResultSet 对象,我有地方不太明白,希望大佬们不吝赐教:

根据Java文档可知,executeupdate方法做的是执行,executeQuery做的是查询,executeQuery方法返回ResultSet 对象,这个我可以理解就是ResultSet是一个存储查询结果的对象,但是为什么executeupdate方法返回值是int而不是void类型?目前感觉executeupdate方法本质上只是执行sql相关语句参数,返回值貌似没用上。Java8文档给出对该方法返回值的解释是“1) SQL 数据操作语言 (DML) 语句的行计数,或 (2) 不返回任何内容的 SQL 语句的行计数为 0”,确实不太懂这个有什么用处

阅读 3.2k
4 个回答

sql 也分种类,executeQuery()主要用于执行DQL(select 查询语句),executeUpdate()主要用于执行其他,比如DML(insert,update,delete),DDL(create schema.......) 。DML有行数变动,DDL则没有什么返回,还有一种DCL并没有提及,估计也能用,不过没有测试过。

executeupdate 返回的是受影响的行数,比如修改了几条,插入了几条,更新了几条
有些业务场景会用到,比如导入/批量修改/批量删除的时候告诉用户做了多少数据

返回值貌似没用上,这个个因为你没有用上而已,比如你执行一条修改语句,如何判断是否更新成功,和修改了多少条记录(也就是受影响的数据行数),比如返回0则表示你的SQL修改没有修改到任何一条记录

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题