Bạn không thể liên kết Danh sách với một tham số duy nhất trong một câu lệnh đã chuẩn bị.
Tạo SQL với một điểm đánh dấu tham số cho mỗi phần tử trong danh sách, ví dụ:
SELECT NAME FROM ITEM WHERE ID IN (?, ?, ?, ?)
Mặc dù bạn sẽ tạo một câu lệnh mới cho mỗi truy vấn, tôi vẫn khuyên bạn nên sử dụng PreparedStatement
. Nếu danh sách của bạn chứa String
các trường hợp, bạn sẽ nhận được cách thoát cần thiết để bảo vệ khỏi SQL injection.
Nhưng ngay cả khi đó là một loại an toàn, như Integer
các đối tượng, một số trình điều khiển hoặc phần mềm trung gian có thể lưu vào bộ nhớ cache PreparedStatements
và trả về một phiên bản được lưu trong bộ nhớ cache nếu cùng một biểu mẫu được yêu cầu. Tất nhiên, một số thử nghiệm sẽ là cần thiết. Nếu danh sách của bạn có nhiều kích thước khác nhau, bạn sẽ có nhiều câu lệnh khác nhau và một bộ nhớ cache được triển khai kém có thể không được chuẩn bị để xử lý nhiều câu lệnh như vậy.