execute、executeUpdate、executeQuery三者的区别
一、boolean execute(String sql)
允许执行查询语句、更新语句、DDL语句。
返回值为true时,表示执行的是查询语句,可以通过getResultSet方法获取结果;
返回值为false时,执行的是更新语句或DDL语句,getUpdateCount方法获取更新的记录数量。
st = con.createStatement(); boolean ret = st.execute("select username,age from employee"); //boolean ret = st.execute("update employee set age=10"); con.commit(); if (ret == true) { System.out.println("获取的结果集是:"); ResultSet rs = st.getResultSet(); while (rs.next()) { System.out.println(rs.getString(1) + ":" + rs.getInt(2)); } rs.close(); } else { System.out.println("更新的结果是:" + st.getUpdateCount()); }
二、int executeUpdate(String sql)
执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。
返回值是更新的记录数量
三、ResultSet executeQuery(String sql)
执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。
-------------------------------------------------------------------------------------------------------
JDBC中Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。
1>方法executeQuery 用于产生单个结果集(ResultSet)的语句,例如 SELECT 语句。 被使用最多的执行 SQL 语句的方法。这个方法被用来执行 SELECT 语句,它几乎是使用最多的 SQL 语句。但也只能执行查询语句,执行后返回代表查询结果的ResultSet对象。
如:
//加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//使用DriverManager获取数据库连接 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root","1234");
//使用Connection来创建一个Statment对象 Statement stmt = conn.createStatement();
//执行查询语句 ResultSet rs =stmt.executeQuery("select * from teacher");
//把查询结果输出来
while (rs.next())
{
System.out.println(rs.getInt(1) + "\t" + rs.getString(2)); }
2>方法executeUpdate
用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数(int),指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。
如:
//加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//使用DriverManager获取数据库连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root","1234");
//使用Connection来创建一个Statment对象
Statement stmt = conn.createStatement(); //执行DML语句,返回受影响的记录条数
return stmt.executeUpdate(sql);
3>方法execute: 可用于执行任何SQL语句,返回一个boolean值,表明执行该SQL语句是否返回了ResultSet。如果执行后第一个结果是ResultSet,则返回true,否则返回false。但它执行SQL语句时比较麻烦,通常我们没有必要使用execute方法来执行SQL语句,而是使用executeQuery或executeUpdate更适合,但如果在不清楚SQL语句的类型时则只能使用execute方法来执行该SQL语句了。 如:
//加载驱动
Class.forName(driver);
//获取数据库连接
conn = DriverManager.getConnection(url , user , pass);
//使用Connection来创建一个Statment对象
stmt = conn.createStatement();
//执行SQL,返回boolean值表示是否包含ResultSet
boolean hasResultSet = stmt.execute(sql);
//如果执行后有ResultSet结果集
if (hasResultSet)
{
//获取结果集
rs = stmt.getResultSet();
//ResultSetMetaData是用于分析结果集的元数据接口
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
//迭代输出ResultSet对象
while (rs.next())
{//依次输出每列的值
for (int i = 0 ; i < columnCount ; i++ )
{
System.out.print(rs.getString(i + 1) + "\t");
}
System.out.print("\n");
}
}
else
{
System.out.println("该SQL语句影响的记录有" + stmt.getUpdateCount() + "条");
}
转载于:https://www.cnblogs.com/wukong0214/p/3262883.html
execute、executeUpdate、executeQuery三者的区别相关推荐
- mysql点击execute_MySQL execute、executeUpdate、executeQuery三者的区别
execute.executeUpdate.executeQuery三者的区别(及返回值) 一.boolean execute(String sql) 允许执行查询语句.更新语句.DDL语句. 返回值 ...
- execute、executeUpdate、executeQuery三者的区别(及返回值)
ResultSet executeQuery(String sql); 执行SQL查询,并返回ResultSet 对象. 2.int executeUpdate(String sql); 可执行增,删 ...
- execute、executeUpdate、executeQuery三者的区别及返回值
一. boolean execute(String sql) 允许执行查询语句.更新语句.DDL语句. 返回值为true时,表示执行的是查询语句,可以通过getResultSet方法获取结果:返回值 ...
- execute、executeQuery和executeUpdate之间的区别
execute.executeQuery和executeUpdate之间的区别 JDBCTM中Statement接口提供的execute.executeQuery和executeUpdate之间的区别 ...
- java executequery_java execute、executeQuery和executeUpdate之间的区别
在用纯JSP做一个页面报警功能的时候习惯性的用executeQuery来执行SQL语句,结果执行update时就遇到问题,语句能执行,但返回结果出现问题,另外还忽略了executeUpdate的返回值 ...
- (转)execute、executeQuery和executeUpdate之间的区别
execute.executeQuery和executeUpdate之间的区别 JDBCTM中Statement接口提供的execute.executeQuery和executeUpdate之间的区别 ...
- sql语句 execute、executeQuery和executeUpdate之间的区别
execute.executeQuery和executeUpdate之间的区别 JDBC中Statement 接口提供了三种执行 SQL 语句的方法:executeQuery.executeUpdat ...
- java execute、executeQuery和executeUpdate之间的区别
在用纯JSP做一个页面报警功能的时候习惯性的用executeQuery来执行SQL语句,结果执行update时就遇到问题,语句能执行,但返回结果出现问题,另外还忽略了executeUpdate的返回值 ...
- JDBC之execute、executeQuery和executeUpdate之间的区别
execute.executeQuery和executeUpdate之间的区别 JDBC中Statement接口提供的execute.executeQuery和executeUpdate之间的区别 S ...
- Java中的executeQuery_java execute,executeQuery和executeUpdate之间的区别
java execute,executeQuery和executeUpdate之间的区别 关注:269 答案:4 信息版本:手机版 电脑版 解决时间 2021-01-25 18:31 提问者怪咖 ...
最新文章
- Android规范文档
- 剑指offer:反转链表
- mongodb java id 查询数据_java 用 _id 查找 MongoDB 下的数据
- 经验之谈:10位顶级PHP大师的开发原则
- MATLAB中的微积分运算(数值符号)
- 小哼买书JAVA编写,04_小哼买书
- Java B2B2C o2o多用户商城 springcloud架构-docker-feign-hystrix(六)
- 基于结构的虚拟筛选模型 gnina 从源码编译
- Rational Rose :从用例图开始
- 对Librehash海洋协议审查的回应
- 电脑主机组装总结——自己动手,丰衣足食
- 单片机实验五、外部中断实验
- php 将汉字转为拼音,PHP汉字转换为拼音字头原理
- 安卓手机运行python程序
- linux电脑关机命令是什么问题,linux下正常关机之命令详解 -电脑资料
- 跨境支付行业洗牌在即:本月底必须登记 支付机构不得再“借牌照”
- 图书馆数据库资源访问方法
- 致终将逝去的2021
- nchar 和 nvarchar
- mongodb数据库优缺点分析(扫盲)