Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Khác biệt giữa execute(), executeQuery(), executeUpdate() trong JDBC

Interface Statement cung cấp 3 phương thức thực thi SQL với mục đích khác nhau:

1. execute()

Dùng cho: câu lệnh DDL (CREATE, ALTER, DROP) hoặc câu lệnh có thể trả về nhiều kết quả.

Trả về: boolean - true nếu kết quả đầu tiên là ResultSet (SELECT), false nếu là update count hoặc không có kết quả.

String createTable = "CREATE TABLE Employee(Name VARCHAR(255), Salary INT, Location VARCHAR(255))";
boolean bool = stmt.execute(createTable); // false

2. executeUpdate()

Dùng cho: DML - INSERT, UPDATE, DELETE, cũng như DDL.

Trả về: int - số dòng bị ảnh hưởng (affected rows). Với DDL trả về 0.

String insertData = "INSERT INTO Employee(Name, Salary, Location) VALUES ('Amit',30000,'Hyderabad')";
int rows = stmt.executeUpdate(insertData); // 1

3. executeQuery()

Dùng cho: SELECT - truy vấn trả về dữ liệu bảng.

Trả về: ResultSet - con trỏ duyệt kết quả.

ResultSet rs = stmt.executeQuery("SELECT * FROM Employee");
while(rs.next()) {
    System.out.println(rs.getString("Name") + ", " + rs.getInt("Salary"));
}

Bảng so sánh

Phương thứcLoại SQLTrả vềVí dụ
execute()DDL, bất kỳbooleanCREATE TABLE
executeUpdate()INSERT/UPDATE/DELETE/DDLint (số dòng)INSERT, UPDATE
executeQuery()SELECTResultSetSELECT * FROM table