Non puoi associare un elenco a un singolo parametro in un'istruzione preparata.
Genera SQL con l'indicatore di parametro a per ogni elemento nell'elenco, ad esempio:
SELECT NAME FROM ITEM WHERE ID IN (?, ?, ?, ?)
Anche se genererai una nuova istruzione per ogni query, ti consiglio comunque di utilizzare un PreparedStatement
. Se la tua lista contiene String
istanze, otterrai l'escape necessario per proteggerti dall'iniezione SQL.
Ma anche se è un tipo sicuro, come Integer
oggetti, alcuni driver o middleware possono memorizzare nella cache PreparedStatements
e restituire un'istanza memorizzata nella cache se viene richiesto lo stesso modulo. Certo, sarebbero necessari alcuni test. Se le dimensioni delle tue liste variano notevolmente, avrai molte istruzioni diverse e una cache mal implementata potrebbe non essere pronta per gestirne così tante.