Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да свържа ArrayList към PreparedStatement в Oracle?

Не можете да обвържете списък с един параметър в подготвен оператор.

Генерирайте SQL с маркера за параметър за всеки елемент в списъка, например:

SELECT NAME FROM ITEM WHERE ID IN (?, ?, ?, ?)

Въпреки че ще генерирате нов израз за всяка заявка, все пак препоръчвам да използвате PreparedStatement . Ако вашият списък съдържа String екземпляри, ще получите необходимото екраниране за защита от SQL инжектиране.

Но дори и да е безопасен тип, като Integer обекти, някои драйвери или междинен софтуер могат да кешират PreparedStatements и връща кеширано копие, ако се изисква същият формуляр. Разбира се, ще са необходими някои тестове. Ако вашите списъци се различават значително по размер, ще имате много различни изрази и лошо внедрен кеш може да не е готов да се справи с толкова много.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо rlwrap echos излишно това, което въвеждам от клавиатурата?

  2. Показване на записи от две таблици една до друга, съответстващи само на някои от полетата

  3. sqldeveloper извежда правилен резултат за count(*), докато sqlplus дава нула

  4. JDBC се свързва с база данни на Oracle с SSL

  5. Как да се отърва от празна, но огромна LOB колона?