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并没有提及,估计也能用,不过没有测试过。