U kunt een lijst niet binden aan een enkele parameter in een voorbereide instructie.
Genereer SQL met de a-parametermarkering voor elk element in de lijst, bijvoorbeeld:
SELECT NAME FROM ITEM WHERE ID IN (?, ?, ?, ?)
Ook al genereert u voor elke zoekopdracht een nieuwe instructie, toch raad ik u aan een PreparedStatement
te gebruiken . Als uw lijst String
. bevat In sommige gevallen krijgt u de nodige ontsnappingen om te beschermen tegen SQL-injectie.
Maar zelfs als het een veilig type is, zoals Integer
objecten, sommige stuurprogramma's of middleware kunnen PreparedStatements
cache cachen , en retourneer een exemplaar in de cache als hetzelfde formulier wordt aangevraagd. Natuurlijk zouden er wat testen nodig zijn. Als uw lijsten sterk in grootte verschillen, zult u veel verschillende verklaringen hebben, en een slecht geïmplementeerde cache is misschien niet voorbereid om zoveel te verwerken.