|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Oct 2010
Messaggi: 3
|
[JSP+SQL]Ricerca a più campi
Ciao a tutti! volevo avere delucidazioni riguardo la possibilità di effettuare una ricerca a più parametri impostabili dall'utente. Prendiamo per esempio una JSP all'interno della quale l'utente possa decidere di effettuare una ricerca su 4 campi (es. 4 text box). Di questi 4 campi può anche non compilarli tutti. Quindi, nel caso in cui uno o più non vengano compilati, la ricerca deve essere effettuata basandosi su quelli compilati e per gli altri parametri considerare tutte le possibilità. Come è possibile costruire una query SQL?
Lo scambio di informazioni avviene tra JSP servlet DB. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
|
Ciao, a prescindere dalla tecnologia che utilizzerai per realizzare la gui, il modo più semplice per costruire delle query "dinamiche" in base ai parametri passati in input (come le text box) è quello per concatenazione di stringhe.
Ti faccio un esempio banale, supponiamo che tu abbia una tabella Persona(ID,NAME,SURNAME,TELEPHONE). La tua jsp contiene ad esempio 3 text box del tipo : Nome : ________ Cognome: ______ Tel:______ Costruisci la tua query base che va sulla tabella interessata : Codice:
String queryBase = "select * from Persona where 1=1 and "; Codice:
if(nome != null && !nome.equals("")) queryBase = queryBase + " name = "+nome; In questa maniera alla query di base verranno aggangiate le ulteriori condizioni nel caso in cui i campi associati vengano compilati Questo è il metodo più veloce, potresti raffinarlo mettendo un controllo per evitare la "sql injection" oppure renderlo un pò meno legato alla view..
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Oct 2010
Messaggi: 3
|
grazie! ci proverò!
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:15.