sql >> Databasteknik >  >> RDS >> Oracle

Hur binder jag en ArrayList till en PreparedStatement i Oracle?

Du kan inte binda en lista till en enskild parameter i en förberedd sats.

Generera SQL med en parametermarkör för varje element i listan, till exempel:

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

Även om du kommer att generera ett nytt uttalande för varje fråga, rekommenderar jag fortfarande att du använder en PreparedStatement . Om din lista innehåller String instanser får du den nödvändiga flykten för att skydda mot SQL-injektion.

Men även om det är en säker typ, som Integer objekt, vissa drivrutiner eller mellanprogram kan cache PreparedStatements , och returnera en cachad instans om samma formulär begärs. Visst skulle vissa tester behövas. Om dina listor varierar mycket i storlek kommer du att ha många olika uttalanden, och en dåligt implementerad cache kanske inte är beredd att hantera så många.



  1. Hur skyddar denna PDO-kod från SQL-injektioner?

  2. Är det snabbare att infoga en ny databaspost än att kontrollera om posten finns först?

  3. Hibernate 4.3.5 fungerar inte med Oracle10g Database

  4. Splitting Strings:Nu med mindre T-SQL