executeQuery()executeUpdate() 和 execute() 是JDBC API的java.sql.Statement接口的方法,用于执行SQL语句。

executeQuery() Vs executeUpdate() Vs execute()

executeQuery()executeUpdate()execute()
此方法用于执行从数据库中检索某些数据的 SQL 语句。此语句用于执行更新或修改数据库的 SQL 语句。此方法可用于任何类型的 SQL 语句。
此方法返回一个 ResultSet 对象,该对象包含查询返回的结果。此方法返回一个 int 值,该值表示受查询影响的行数。对于不返回任何内容的语句,这将为 0。此方法返回布尔值。TRUE 表示查询返回了结果集对象,FALSE 表示返回了整型值或未返回任何内容。
此方法用于执行选择查询。此方法用于执行非选择查询。此方法用于执行选择和非选择查询。
例如:SELECT

例如:
DML->INSERT , UPDATE and DELETE

DDL-> CREATE, ALTER

任何类型的 SQL 语句。

创建语句对象后,可以使用语句接口的执行方法之一执行它,即execute(), executeUpdate() 和 executeQuery()。

execute() 方法:此方法用于执行 SQL DDL 语句,它返回一个布尔值,指定可以检索结果集对象的天气。

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 {
      //Registering the Driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //Getting the connection
      String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");
      //Creating the Statement
      Statement stmt = con.createStatement();

      //Executing the statement
      String createTable = "CREATE TABLE Employee( "
         + "Name VARCHAR(255), "
         + "Salary INT NOT NULL, "
         + "Location VARCHAR(255))";
      boolean bool = stmt.execute(createTable);

      System.out.println(bool);
   }
}

输出

Connection established......
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 {
      //Registering the Driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //Getting the connection
      String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");
      //Creating the Statement
      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("Rows inserted: "+i);
   }
}

输出

Connection established......
Rows inserted: 4

executeQuery():此方法用于执行返回表格数据的语句(示例选择)。它返回类结果集的对象。

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 {
      //Registering the Driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //Getting the connection
      String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");
      //Creating the Statement
      Statement stmt = con.createStatement();

      //Retrieving data
      ResultSet rs = stmt.executeQuery("Select *from Employee");

      while(rs.next()) {
         System.out.print("Name: "+rs.getString("Name")+", ");
         System.out.print("Salary: "+rs.getInt("Salary")+", ");
         System.out.print("City: "+rs.getString("Location"));
         System.out.println();
      }
   }
}

输出

Connection established......
Name: Amit, Salary: 30000, City: Hyderabad
Name: Kalyan, Salary: 40000, City: Vishakhapatnam
Name: Renuka, Salary: 50000, City: Delhi
Name: Archana, Salary: 15000, City: Mumbai
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐