Mam pytanie jak stworzyć dynamiczne zapytanie do bazy?
Powiedzmy ze mam coś takiego co niestety też nie działa...
pstmt = con.prepareStatement( "SELECT * FROM BAZA_X WHERE COL_1 = ?," +
"Col_2= ?, Col_3 = ?, col_4 = ?,"+
"Col_5 = ? Col_6 = ?");
pstmt.setString(1, x1);
pstmt.setString(2, x2);
pstmt.setString(3, x3);
pstmt.setInt(5, x4);
pstmt.setString(4, x5);
pstmt.setString(6, x6);
pstmt.executeUpdate();
pstmt.close()
Parametry są przekazywanie do funkcji, konwertowane odpowiednio na string/int/etc i podstawiane do pstmt.setXXX() jesli nie ma jakiegoś parametru to porostu pomija go w zapytaniu. Tak ma to wyglądać, niestety ten kod nie działa.
w Hibernate to dość proste sprawdzam if'em czy przekazany parametr ma jakaś wartość i robię wpis
if(par_1.isEmpty()==False) con.add(Restrictions.ilike("Col_2",Par_1));
i tak razy n parametrów później tylko sumuje, wsadzam do listy<typ> i wysyłam do modelu tabeli a jak by to wyglądało w JDBC? Bo przeglądam tutki i dokumentacje ale tam wszędzie jest tylko statyczne zapytanie?
W pstmt nie da się wstawiać np
if(par_1.isEmpty()==false)to string par_1 = " Col_1 = " +par_1
Wie ktoś jak to rozwiązać?
Może rozwiązanie jest dość banalne a ja jestem już zmęczony i nawet o tym nie pomyślałem...