So sánh Statement, PreparedStatement và CallableStatement

Statement, PreparedStatement và CallableStatement cung cấp các phương thức để thực hiện truy vấn với cơ sở dữ liệu MySQL, PostgreSQL hoặc Oracle. Để thấy rõ hơn chúng có gì khác nhau hãy cùng xem bài so sánh Statement, PreparedStatement và CallableStatement.

Statement sử dụng cho các câu lệnh truy vấn tĩnh, còn PreparedStatement và CallableStatement sử dụng cho các câu truy vấn động khi cho phép truyền các tham số đầu vào. PreparedStatement và CallableStatement nâng cao hiệu năng sử lý cũng như cung cấp nhiều phương thức hơn so với việc bạn sử dụng Statement.

Ở trên chỉ là một vài yếu tố chỉ ra sự khác biệt giữa Statement, PreparedStatement và CallableStatement. Bạn có thể xem ở bảng so sánh Statement, PreparedStatement và CallableStatement được mô tả bên dưới:

StatementPreparedStatementCallableStatement
Statement được sử dụng để thực hiện câu lệnh truy vấn dạng SQL tĩnh.PreparedStatement được sử dụng để thực hiện câu lệnh truy vấn dạng SQL động khi cho phép truyền tham số đầu vàoCallableStatement được sử dụng để gọi stored procedures
Statement có hiệu năng thấp hơn với PreparedStatement, CallableStatementPreparedStatement cho hiệu năng cao hơn Statement nhưng vẫn không bằng CallableStatementCallableStatement cho hiệu năng xử lý cao hơn Statement  và PreparedStatement
Statement được dùng cho các câu truy vấn sử dụng một lần.PreparedStatement  được dùng cho các câu truy vấn sử dụng lại nhiều lần.CallableStatement  được dùng để gọi stored procedures và functions.
Statement không cho phép thực hiện lưu trữ, truy xuất hình ảnh và tệp trong cơ sở dữ liệuPreparedStatement cho phép thực hiện lưu trữ, truy xuất hình ảnh và tệp trong cơ sở dữ liệuCallableStatement cho phép thực hiện lưu trữ, truy xuất hình ảnh và tệp trong cơ sở dữ liệu
Statement không có phương thức addBatch(), nó chỉ có phương thức  addBatch(String sql)PreparedStatement kế thừa tất cả các phương thức từ Statement và bổ sung thêm phương thức  addBatch()CallableStatement cũng hỗ trợ phương thức addBatch() tương tự  PreparedStatement
Để tạo đối tượng Statement bằng cách gọi phương thức  createStatement()Để tạo đối tượng PreparedStatement bằng cách gọi phương thức  prepareStatement(String sql)Để tạo đối tượng CallableStatement bằng cách gọi phương thức  prepareCall(String sql)

Lời kết: Như vậy, qua bài so sánh Statement, PreparedStatement và CallableStatement bạn có thấy rằng mỗi loại đều có ưu và nhược điểm riêng. Vậy tùy vào mỗi mục đích sử dụng khác nhau mà bạn hãy sử dụng loại phù hợp nhất nhằm nâng cao hiệu năng.

(Tác giả: Tùng Dương)

Bình luận

Loading...