[Java lista] dinamikus query
Auth Gábor
auth.gabor at javaforum.hu
2008. Okt. 14., K, 19:51:40 CEST
Halihó!
Halász-Szabó Dániel ezt írta:
> Kicsit konkretizálom a dolgot:
> gyakran előforduló igény, hogy lehessen szűrni egy listában legalább 10
> féle mező szerint. Bejön a sok mező értéke, csak az alapján tudok
> dönteni, hogy kell-e rá szűrnöm vagy sem, hogy null-e vagy nem. Magát az
> sql-t még összeollózom kézzel ha kell, de hogy setelem be az értékeket a
> preparedstatement-ben pozició helyesen. Persze ha nagyon nincs ilyen
> készen, akkor írok magamnak valamit rá, de minek feltalálni a melegvizet.
String query="SELECT * FROM person WHERE (email = ? OR ? IS NULL) AND
(username = ? OR ? IS NULL) AND ...";
PreparedStatement statment=connection.prepareStatement(query);
statment.setString(1, email);
statment.setString(2, email);
statment.setString(3, username);
statment.setString(4, username);
Ha az email null, akkor az a blokk igaz lesz, ha nem null, akkor az OR
előtti feltételtől függ a blokk igaz volta. Nem kell ide SQL-t faragni
feltételekkel feleslegesen... :)
--
http://www.javaforum.hu -=- http://www.enaplo.hu
Auth Gábor -=- http://www.javaforum.hu/web/10/authgabor
További információk a(z) Javalist levelezőlistáról