sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo vinculo un ArrayList a un PreparedStatement en Oracle?

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.