JDBC中execute(),executeQuery()和executeUpdate()方法的区别是什么?

JDBC中execute(),executeQuery()和executeUpdate()方法的区别是什么?

在使用JDBC(Java Database Connectivity)连接数据库时,我们常会用到三个方法:execute(),executeQuery()和executeUpdate()。它们都是Statement接口中的方法,但是它们却有着不同的功能和返回值,下面我们来一一介绍。

阅读更多:MySQL 教程

execute()方法

execute()方法是一个通用方法,它可以执行任何SQL语句(如:SELECT,CREATE TABLE,INSERT,UPDATE,DELETE等),但是它不能返回任何结果集或是影响行数的值。如果需要获取结果集或者影响行数,需要在执行SQL语句之前先判断 SQL 语句的类型,然后调用 executeQuery() 或者 executeUpdate() 方法。

下面是一个示例代码:

String sql = "SELECT * FROM student WHERE age > 18";   //建立sql语句
Statement statement = connection.createStatement();
boolean hasResultSet = statement.execute(sql);     // 执行SQL语句

if (hasResultSet) {
  ResultSet resultSet = statement.getResultSet();      // 获取结果集
  while (resultSet.next()) {
    System.out.println(resultSet.getString("name"));
  }
}

executeQuery()方法

executeQuery()方法只能用于执行 SELECT 语句,它返回一个包含查询结果的ResultSet对象。ResultSet中包含了查询结果集中的全部行和列。

下面是一个示例代码:

String sql = "SELECT * FROM student WHERE age > 18";   //建立sql语句
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(sql);     // 执行SQL查询语句

while (resultSet.next()) {
  System.out.println(resultSet.getString("name"));
}

executeUpdate()方法

executeUpdate()方法用于执行 INSERT、UPDATE 以及 DELETE 等 DML(Data Manipulation Language)语句,它返回一个整数,代表该操作对数据库中受影响的记录数。

下面是一个示例代码:

String sql = "UPDATE student SET age = 20 WHERE name = '张三'";   //建立sql语句
Statement statement = connection.createStatement();
int result = statement.executeUpdate(sql);     // 执行SQL更新语句

System.out.println("影响行数:" + result);

结论

  • execute()是通用方法,可执行任何SQL语句,但不能返回结果集或影响行数的值;
  • executeQuery()只能执行SELECT语句,返回一个ResultSet对象,包含查询的结果集;
  • executeUpdate()用于执行INSERT、UPDATE、DELETE等DML语句,返回受影响的记录数。

因此,在使用JDBC时,我们需要根据SQL语句的类型选择相应的方法,以获取正确的结果。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程