[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