`

JDBC中PreparedStatement接口提供的execute、executeQuery和executeUpdate之间的区别及用法

    博客分类:
  • JDBC
阅读更多
PreparedStatement接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。

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

       2、方法executeUpdate
         用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。

         使用executeUpdate方法是因为在 createTableCoffees 中的 SQL 语句是 DDL (数据定义语言)语句。创建表,改变表,删除表都是 DDL 语句的例子,要用 executeUpdate 方法来执行。你也可以从它的名字里看出,方法 executeUpdate 也被用于执行更新表 SQL 语句。实际上,相对于创建表来说,executeUpdate 用于更新表的时间更多,因为表只需要创建一次,但经常被更新。


        3、方法execute:
         用于执行返回多个结果集、多个更新计数或二者组合的语句。也可用于执行 INSERT、UPDATE 或 DELETE 语句。

 

用法举例:

1、增加、修改、删除都用execute(),也可用executeUpdate(),针对于INSERT、UPDATE 或 DELETE 语句

    public int addAirEnvironmentPresent(M_AirEnviromentPresentDTO airDTO){
  int index = 1;
  String sql = "insert into airPresent(airForecastPlace,ForecastTime,TSPvalue,remark) values(?,?,?,?)";
  try {
   ps = conn.prepareStatement(sql);
   ps.setString(index++, airDTO.getAirForecastPlace());
   ps.setString(index++, airDTO.getForecastTime());
   ps.setString(index++, airDTO.getTSPvalue());
   ps.setString(index++, airDTO.getRemark());
   ps.execute();
   
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return 1;
 }

2、查询调用executeQuery(),针对于SELECT语句

public ArrayList getAirEnvironmentPresentAll(){
  ArrayList list = new ArrayList();
  String sql = "select * from airPresent";
  try {
   ps = conn.prepareStatement(sql);
   rs = ps.executeQuery();
   while(rs.next()){
    dto = new M_AirEnviromentPresentDTO();
    dto.setId(rs.getInt("id"));
    dto.setAirForecastPlace(rs.getString("airForecastPlace"));
    dto.setForecastTime(rs.getString("forecastTime"));
    dto.setTSPvalue(rs.getString("tspvalue"));
    dto.setRemark(rs.getString("remark"));
    list.add(dto);
   }
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return list;
 }

分享到:
评论

相关推荐

    execute、executeQuery和executeUpdate之间的区别

    在Java开发中,尤其涉及到数据库操作时,`execute`, `executeQuery` 和 `executeUpdate` 这三个方法是JDBC编程中非常重要的一部分。它们分别适用于不同类型的SQL语句,理解这些方法的区别对于正确高效地执行数据库...

    如何获得PreparedStatement最终执行的sql语句

    在Java的JDBC编程中,`PreparedStatement`是一个非常重要的接口,它用于预编译SQL语句,提高了数据库操作的效率和安全性。当我们处理大量重复的SQL操作时,使用`PreparedStatement`可以避免SQL注入等问题,同时提升...

    第10章 JDBC-课后习题1

    3. `Statement`接口的`executeUpdate(String sql)`方法用于执行SQL中的`insert`、`update`和`delete`语句。 4. `PreparedStatement`是`Statement`的子接口,用于执行预编译的SQL语句。 5. `ResultSet`接口中定义了...

    JDBC基础教程之PreparedStatement.doc

    - `PreparedStatement`提供了修改后的`execute`, `executeQuery`和`executeUpdate`方法,这些方法不再接受SQL语句作为参数。 - 而是直接执行预编译过的SQL语句,提高了执行效率。 #### 三、创建`...

    JDBC常考知识点,常用api

    `Connection`接口提供了创建Statement、PreparedStatement和CallableStatement对象的方法,以执行SQL语句。 - `createStatement()`:返回一个Statement对象,用于执行非参数化的SQL语句。 - `prepareStatement...

    Java软件开发实战 Java基础与案例开发详解 18-2 JDBC类和接口 共16页.pdf

    根据给定文件的信息,本文将重点讲解第18章中关于JDBC类和接口的知识点。这部分内容主要涉及Java数据库连接(JDBC)的核心概念、关键类和接口,以及它们如何帮助开发者进行数据库操作。 ### 18.2 JDBC类和接口 ###...

    使用JDBC操作数据库

    4. **执行SQL**:调用Statement或PreparedStatement的`executeQuery()`或`executeUpdate()`方法执行SQL语句。 5. **处理结果**:如果执行的是查询语句,可以使用ResultSet对象遍历查询结果。例如,`while ...

    JAVA学习使用JDBC的高级特征创建应用程序PPT教案学习.pptx

    在JDBC中,PreparedStatement接口是Statement接口的一个子接口,它提供了预编译的SQL语句,这对于处理动态参数和提高性能非常关键。下面将详细讨论PreparedStatement接口的高级特性以及如何在应用程序中使用它们。 ...

    java(jdbc)学习

    1. **常用方法**:`execute()`, `executeQuery()`, `executeUpdate()`等,分别用于执行任意SQL语句、查询语句和更新语句。 2. **CRUD操作**:利用Statement执行Create(插入)、Read(查询)、Update(更新)和...

    JDBC 与ODBC简介

    4. **执行SQL**:调用`Statement`或`PreparedStatement`的`executeQuery()`或`executeUpdate()`方法执行SQL语句。 5. **处理结果集**:如果执行的是查询语句,会返回一个`ResultSet`对象,可以遍历并获取查询结果。 ...

    JDBC知识总结(针对基础知识)

    - `Statement`方法区别:`execute()`执行任意语句,`executeUpdate()`用于增删改操作,`executeQuery()`用于查询。 - 固定驱动:直接实例化指定的`Driver`,然后通过`DriverManager.registerDriver(drv)`注册。 -...

    hive jdbc依赖的jar包

    3. **执行SQL**:通过`Connection`对象创建`Statement`或`PreparedStatement`,然后调用其`executeQuery()`或`executeUpdate()`方法执行SQL语句,如创建表、插入数据、查询等。 4. **结果集处理**:对于查询语句,`...

    JDBC入门基础讲座

    4. **执行SQL语句/存储过程**: 使用Statement对象的executeQuery()或executeUpdate(),PreparedStatement的execute()方法。 5. **处理结果集**: 如果是查询操作,遍历ResultSet对象,获取数据。 6. **关闭资源**: ...

    详解Java的JDBC中Statement与PreparedStatement对象

    在Java的JDBC(Java Database Connectivity)中,与数据库交互的核心接口是Statement和PreparedStatement。这两个接口都是用于执行SQL语句的,但它们在特性和效率上有所不同。 Statement接口是最基本的SQL执行方式...

    java,JDBC例子

    Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一组接口和类。它是Java标准版(Java SE)的一部分,允许Java开发者在应用程序中执行SQL语句,从而实现对数据库的操作,如查询...

    使用jdbc动态连接数据库

    它是JDBC的核心类之一,主要用于用户和驱动程序之间的通信。`DriverManager`类的一些关键方法包括: - `getConnection(String url, Properties info)`:根据提供的URL和属性信息建立到数据库的连接。 - `getDrivers...

    使用JDBC连接Oracle,MySql,SQLServer数据库

    文档部分,应该详细记录JDBC连接的步骤、配置方式、BaseDao的方法及其用法,以便团队成员理解和使用。可以使用Markdown或Word文档格式,清晰列出每个步骤和示例代码。 综上所述,使用JDBC连接Oracle、MySQL和SQL ...

    JDBC知识点总结

    #### 五、JDBC 常用类和接口详解 **DriverManager** - `java.sql.DriverManager` 类提供了用于注册 JDBC 驱动和创建数据库连接的方法。 - **注册驱动**: - 使用 `Class.forName("com.mysql.jdbc.Driver")` 来...

    老罗 jdbc 源码

    - 执行SQL:调用Statement的executeQuery()或executeUpdate()方法。 - 处理结果:如果执行的是查询,通过ResultSet处理结果;如果是更新操作,返回受影响的行数。 - 关闭资源:确保在操作完成后关闭Statement、...

Global site tag (gtag.js) - Google Analytics