Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm cách nào để liên kết ArrayList với một PreparedStatement trong Oracle?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. RMAN Các lệnh sao lưu

  2. Giải pháp cho kết nối bên ngoài với toán tử IN trong Oracle

  3. Những gì cần thiết để làm việc với Oracle từ Visual Studio 2010?

  4. Hàm TO_DSINTERVAL () trong Oracle

  5. Lỗi cú pháp Thiếu từ khóa trong câu lệnh trường hợp trong mệnh đề WHERE