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ức | Loại SQL | Trả về | Ví dụ |
|---|---|---|---|
| execute() | DDL, bất kỳ | boolean | CREATE TABLE |
| executeUpdate() | INSERT/UPDATE/DELETE/DDL | int (số dòng) | INSERT, UPDATE |
| executeQuery() | SELECT | ResultSet | SELECT * FROM table |