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

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

一旦您创建了语句对象,就可以使用Statement接口的execute()、executeUpdate()和executeQuery()方法之一来执行它。

execute()方法: 此方法用于执行SQL DDL语句,它返回一个布尔值,指定是否可以检索ResultSet对象。

阅读更多:MySQL 教程

示例

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Example {
   public static void main(String args[]) throws SQLException {
      //注册驱动程序
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //获取连接
      String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("连接已建立.....");
      //创建语句
      Statement stmt = con.createStatement();

      //执行语句
      String createTable = "CREATE TABLE Employee( "
         + "Name VARCHAR(255), "
         + "Salary INT NOT NULL, "
         + "Location VARCHAR(255))";
      boolean bool = stmt.execute(createTable);

      System.out.println(bool);
   }
}

输出结果

连接已建立.....
false

executeUpdate()方法: 此方法用于执行诸如插入、更新、删除之类的语句。它返回一个表示受影响行数的整数值。

示例

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class ExecuteUpdateExample {
   public static void main(String args[]) throws SQLException {
      //注册驱动程序
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //获取连接
      String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("连接已建立....");
      //创建语句
      Statement stmt = con.createStatement();
     
      String insertData = "INSERT INTO Employee("
         + "Name, Salary, Location) VALUES "
         + "('Amit', 30000, 'Hyderabad'), "
         + "('Kalyan', 40000, 'Vishakhapatnam'), "
         + "('Renuka', 50000, 'Delhi'), "
         + "('Archana', 15000, 'Mumbai')";

      int i = stmt.executeUpdate(insertData);
      System.out.println("插入的行数: "+i);
   }
}

输出结果

连接已建立.....
插入的行数: 4

executeQuery()方法: 此方法用于执行返回表格数据的语句(例如select)。它返回ResultSet类的对象。

示例

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ExecuteQueryExample {
   public static void main(String args[]) throws SQLException {
      //注册驱动程序
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //获取连接
      String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("连接已建立......");
      //创建声明
      Statement stmt = con.createStatement();

      //检索数据
      ResultSet rs = stmt.executeQuery("Select *from Employee");

      while(rs.next()) {
         System.out.print("姓名: "+rs.getString("Name")+", ");
         System.out.print("工资: "+rs.getInt("Salary")+", ");
         System.out.print("城市: "+rs.getString("Location"));
         System.out.println();
      }
   }
}

输出

连接已建立......
姓名:Amit, 工资:30000, 城市:Hyderabad
姓名:Kalyan, 工资:40000, 城市:Vishakhapatnam
姓名:Renuka, 工资:50000, 城市:Delhi
姓名:Archana, 工资:15000, 城市:Mumbai

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程