十大互联网公司排名,百度搜索关键词排名优化,phpcms网站建设,餐饮行业管理系统在开发过程中#xff0c;我们常需要对数据库进行操作#xff0c;就避免不了执行各种sql语句#xff0c;就会遇到execute(),executeQuery()和executeUpdate()这个三个执行sql语句的方法#xff0c;如果使用不当#xff0c;就会导致我们执行报错#xff0c;如#xff1a;u…在开发过程中我们常需要对数据库进行操作就避免不了执行各种sql语句就会遇到execute(),executeQuery()和executeUpdate()这个三个执行sql语句的方法如果使用不当就会导致我们执行报错如update语句需要executeUpdate()方法来执行如果你选择使用了executeQuery()系统就会提示错误执行失败。当我们对sql语句进行批量处理的时候就会用到executeBatch()方法。
Statement 接口提供了三种执行 SQL 语句的方法executeQuery、executeUpdate和 execute。项目工程中要选择哪个要根据实际的Sql语句来进行选择。
一、execute()方法 用来执行返回多个结果集的sql语句即当执行某个已存储过程或动态执行未知 SQL 字符串即应用程序程序员在编译时未知时有可能出现多个结果的情况。
假定已知某个过程返回两个结果集则在使用方法 execute 执行该过程后必须调用方法 getResultSet 获得第一个结果集然后调用适当的 getXXX 方法获取其中的值。要获得第二个结果集需要先调用 getMoreResults 方法然后再调用 getResultSet 方法。
如果已知某个过程返回两个更新计数则首先调用方法 getUpdateCount然后调用 getMoreResults并再次调用 getUpdateCount。对于不知道返回内容则情况更为复杂。如果结果是 ResultSet 对象则方法 execute 返回 true 如果结果是 Java int则返回 false。如果返回 int则意味着结果是更新计数或执行的语句是 DDL 命令。在调用方法 execute 之后要做的第一件事情是调用 getResultSet 或 getUpdateCount。 调用方法 getResultSet 可以获得两个或多个 ResultSet 对象中第一个对象或调用方法 getUpdateCount 可以获得两个或多个更新计数中第一个更新计数的内容。
二、executeQuery()方法 用于产生单个结果集的语句例如 SELECT 语句。 被使用最多的执行 SQL 语句的方法是 executeQuery。如果执行存储过程将产生大于 1 的更新计数或生成多个结果集则请使用 execute 方法执行存储过程。
三、executeUpdate() 用于执行 INSERT、UPDATE 、 DELETE 语句或不返回任何内容的 SQL 语句如 SQL DDL数据定义语言语句例如 CREATE TABLE 和 DROP TABLE。executeUpdate 将返回在 MERGE 操作中更新的正确行数。 executeUpdate()注重及时性每写一条sql语句就发送给数据库保存起来没有缓存这样频繁操作数据库效率非常低。 注意 addBatch()和executeUpdate()是用来执行数据插入的不同就是一个批量一个单个插入两者不要在一起使用。
四、executeBatch() 向数据库提交要运行的一批命令。如果所有命令都成功运行则返回一个更新计数数组。executeBatch 方法由 java.sql.Statement 接口中的 executeBatch 方法指定。向数据库提交命令后此方法将清除所有命令。 通常是通过先使用addBatch()来缓存数据将多条sql语句缓存起来再通过executeBatch()方法一次性发给数据库提高执行效率。 注意 使用addBatch()缓存数据时要在循环中设置条件当循环达到指定次数后执行executeBatch()将缓存中的sql全部发给数据库然后执行clearBatch()清楚缓存否则数据过大是会出现OutOfMemory(内存不足)。 ———————————————— 版权声明本文为CSDN博主「W-大泡泡」的原创文章遵循CC 4.0 BY-SA版权协议转载请附上原文出处链接及本声明。 原文链接https://blog.csdn.net/u011389474/article/details/52818670添加链接描述