怎么理解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”,确实不太懂这个有什么用处


回答:

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


回答:

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


回答:

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


回答:

返回更新行数啊,很难理解吗?

以上是 怎么理解JDBC中的executeupdate 和executeQuery方法? 的全部内容, 来源链接: utcz.com/p/944239.html

回到顶部