execute、executeQuery和executeUpdate之间的区别

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() + "条");
            }

sql语句 execute、executeQuery和executeUpdate之间的区别相关推荐

  1. mysql语句 execute、executeQuery和executeUpdate之间的区别

    execute.executeQuery和executeUpdate之间的区别JDBC中Statement 接口提供了三种执行 SQL 语句的方法:executeQuery.executeUpdate ...

  2. execute、executeQuery和executeUpdate之间的区别

    execute.executeQuery和executeUpdate之间的区别 JDBCTM中Statement接口提供的execute.executeQuery和executeUpdate之间的区别 ...

  3. java executequery_java execute、executeQuery和executeUpdate之间的区别

    在用纯JSP做一个页面报警功能的时候习惯性的用executeQuery来执行SQL语句,结果执行update时就遇到问题,语句能执行,但返回结果出现问题,另外还忽略了executeUpdate的返回值 ...

  4. (转)execute、executeQuery和executeUpdate之间的区别

    execute.executeQuery和executeUpdate之间的区别 JDBCTM中Statement接口提供的execute.executeQuery和executeUpdate之间的区别 ...

  5. java execute、executeQuery和executeUpdate之间的区别

    在用纯JSP做一个页面报警功能的时候习惯性的用executeQuery来执行SQL语句,结果执行update时就遇到问题,语句能执行,但返回结果出现问题,另外还忽略了executeUpdate的返回值 ...

  6. JDBC之execute、executeQuery和executeUpdate之间的区别

    execute.executeQuery和executeUpdate之间的区别 JDBC中Statement接口提供的execute.executeQuery和executeUpdate之间的区别 S ...

  7. Java中的executeQuery_java execute,executeQuery和executeUpdate之间的区别

    java execute,executeQuery和executeUpdate之间的区别 关注:269  答案:4  信息版本:手机版 电脑版 解决时间 2021-01-25 18:31 提问者怪咖 ...

  8. JDBC中Statement接口提供的execute、executeQuery和executeUpdate之间的区别

    Statement 接口提供了三种执行 SQL 语句的方法:executeQuery.executeUpdate 和 execute.使用哪一个方法由 SQL 语句所产生的内容决定. 方法execut ...

  9. executeupdate mysql_sql语句executeQuery和executeUpdate之间的区别

    方法一.executeQuery 用于产生单个结果集(ResultSet)的语句,例如 SELECT 语句. 被使用最多的执行 SQL 语句的方法.这个方法被用来执行 SELECT 语句,它几乎是使用 ...

最新文章

  1. 解析腾讯行政区划API接口数据
  2. php用户类,php用户登陆类
  3. c语言移数有n个整数使其,有N个整数,使其前面各数顺序向后移动M个位置,最后M个数变成前面的...
  4. c语言用法 我说火罐火车 刘华火车,五塘村社区建“火车头广场”
  5. Nature撤稿!为销毁造假证据丢弃电脑,“划时代”成果翻车了,副校长鞠躬道歉...
  6. fio 是测试磁盘性能的最佳工具
  7. python读取oracle数据库性能_用python对oracle进行简单性能测试
  8. 嗨,您好 。 。 ! 您如何评价Java / Java EE技能?
  9. Vue2.0史上最全入坑教程(上)—— 搭建Vue脚手架(vue-cli)
  10. python paas_到底什么是PaaS?——【PaaS概述科普文】
  11. php 设置excel格式,PHPExcel为文件格式设置特定标头
  12. 写给美术看的Unity全局光照详解
  13. Spark机器学习数据流水线
  14. cad图形如何导入到奥维地图_CAD图导入奥维简易操作步骤--陈浩
  15. 硬石-专题04 步进电机控制(第1节)_步进电机基本知识介绍1
  16. 注册gmail邮箱手机号无法验证
  17. cisco VoIP软电话配置实验
  18. 记录来到结算页面的客户
  19. OLLYDBG使用笔记
  20. 【小白学习记录】渗透测试之信息收集

热门文章

  1. unicode和字符串之间的转换有两种方式
  2. 在网络安全领域,比较牛的中国黑客有哪些?
  3. Android手机投屏win10
  4. 【ISP】HSV(2)
  5. 关闭按钮 重置按钮
  6. OpenCV视频目标跟踪及背景分割器
  7. PCB设计中数字地、模拟地、数字电源、模拟电源的处理方式
  8. 自定义UDF函数:将汉字转换成拼音
  9. K-means最优K值计算(利用SSE)
  10. bzero和sigevent