Mỗi một trong ba hàm đều có một công dụng cụ thể, có thể được đoán từ kiểu trả về của chúng.
thực thi
Chức năng này là chức năng chung nhất. Nó trả về một giá trị boolean, giá trị nào là true nếu truy vấn trả về nhiều kết quả hoặc false nếu truy vấn trả về không có gì hoặc không có số lượng cập nhật.
Đây là chức năng bạn sẽ muốn sử dụng nếu bạn chỉ muốn sử dụng một chức năng càng chung chung càng tốt.
Nếu nó trả về true, bạn sẽ muốn sử dụng ResultSet * getResultSet()
để nhận kết quả.
Nếu nó trả về false, bạn sẽ muốn sử dụng uint64_t getUpdateCount()
để nhận số lượng hàng được cập nhật.
executeQuery
Hàm này trả về trực tiếp một ResultSet
hữu ích cho SELECT
và giả sử rằng thực sự có một tập kết quả được trả về.
Nó tương đương với lệnh gọi execute()
theo sau là getResultSet()
.
Bạn sẽ muốn sử dụng hàm này khi biết mình đang sử dụng mã SQL trả về kết quả như hàng.
executeUpdate
Hàm này trả về một giá trị số nguyên hữu ích cho UPDATE
và giả sử rằng có một số lượng cập nhật được trả về.
Nó tương đương với lệnh gọi execute()
theo sau là getUpdateCount()
, mặc dù vì một số lý do, các kiểu trả về khác nhau (int so với uint64_t).
Đây là hàm được sử dụng khi thực thi các câu lệnh SQL sửa đổi dữ liệu và bạn cần biết liệu một số dữ liệu đã được sửa đổi hay chưa.
Vì vậy,
cái hợp nhất trên thực tế là execute
, có thể được sử dụng để thực thi SQL tùy ý và xử lý kết quả một cách thích hợp, trong khi hai câu lệnh còn lại là trình bao bọc thuận tiện khi bạn biết loại truy vấn bạn thực thi.
Trong trường hợp của bạn, vì bạn đang viết một trình bao bọc xung quanh ngôn ngữ SQL, mỗi hàm của bạn biết loại câu lệnh nào mà nó sẽ thực thi, vì vậy việc sử dụng các hàm tiện lợi sẽ cho phép bạn viết mã ngắn hơn.
Ví dụ:
insert(), update(), delete() ---> executeUpdate()
select() ---> executeQuery()