No puede vincular una Lista a un solo parámetro en una declaración preparada.
Genere SQL con un marcador de parámetro para cada elemento de la lista, por ejemplo:
SELECT NAME FROM ITEM WHERE ID IN (?, ?, ?, ?)
Aunque generará una nueva declaración para cada consulta, aún recomendaría usar un PreparedStatement
. Si su lista contiene String
instancias, obtendrá el escape necesario para protegerse de la inyección de SQL.
Pero incluso si es un tipo seguro, como Integer
objetos, algunos controladores o middleware pueden almacenar en caché PreparedStatements
y devolver una instancia almacenada en caché si se solicita el mismo formulario. Por supuesto, algunas pruebas serían necesarias. Si sus listas varían mucho en tamaño, tendrá muchas declaraciones diferentes y es posible que una memoria caché mal implementada no esté preparada para manejar tantas.