What is the primary purpose of using a PreparedStatement instead of a Statement when executing SQL queries in a Java web application?

4 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "PreparedStatement prevents SQL injection attacks". Câu lệnh được gửi tới cơ sở dữ liệu ở dạng có dấu giữ chỗ, sau đó từng giá trị được truyền vào bằng các phương thức đặt tham số kèm kiểu, không ghép vào chuỗi SQL. Cấu trúc câu lệnh đã cố định trước khi biết dữ liệu, nên một chuỗi nhập chứa dấu nháy hay từ khoá SQL cũng chỉ được coi là dữ liệu. Lựa chọn "PreparedStatement provides better performance" nêu lợi ích thật nhưng thứ cấp: nhờ câu lệnh được phân tích trước, lặp nhiều lần sẽ nhanh hơn, song đó không phải mục đích chính câu hỏi nhắm tới. Lựa chọn "PreparedStatement allows for dynamic SQL generation" nói ngược: dấu giữ chỗ chỉ thay được giá trị, không thay được tên bảng hay cả mệnh đề. Lựa chọn "PreparedStatement returns a more detailed error message" không phải khác biệt giữa hai giao diện, vì thông báo lỗi do driver sinh ra như nhau.

Cùng phần 3

Xuất hiện trong 1 bộ đề