Le query in linguaggio SQL sono costrutti importantissimi per le nostre applicazioni web: le usiamo spesso per richiamare grandi quantità di dati nei database e quindi vanno gestite bene per non creare confusione nel codice. Inoltre, di solito, molte query vengono ripetute cambiando solo alcuni parametri.
Il linguaggio JAVA offre la possibilità di precompilare le query inviandole una sola volta al JDBC, per poi modificare solo alcuni parametri senza ripetere tutta la compilazione della query. Un esempio di query parametrica può essere:
SELECT * FROM utenti WHERE nome = ?
Il punto interrogativo rappresenta il nostro parametro, che possiamo modificare in seguito. Quindi, per iniziare ad usare una query parametrica dobbiamo innanzitutto compilarla usando il metodo PrepareStatement
dell'oggetto Connection
che abbiamo istanziato. Questo metodo restituisce un oggetto di tipo PreparedStatement
che è la nostra query compilata; vediamo un esempio:
PreparedStatement query = conn.prepareStatement(SELECT * FROM utenti WHERE nome = ?);
Arrivati a questo punto possiamo utilizzare la query precompilata sostituendo un valore al carattere ? tramite la funzione setInt(x,y)
, dove x è l'indice del parametro (in questo caso 1), e y è il valore che deve avere il carattere ? per effettuare la query. Nel caso preso in esempio usiamo la funzione setString()
, ma se dovessimo settare un intero dovremmo usare setInt()
. Quindi il tipo di funzione dipende dal tipo di parametro che bisogna settare. Infine, per eseguire la query richiamiamo il metodo executeQuery()
o executeUpdate()
, già visti in questo articolo:
ResultSet rs = query.executeQuery();
Sono un appassionato di informatica, mi dedico allo sviluppo web e alla gestione dei sistemi web-based: realizzo siti e progetto software gestionale per privati e aziende. Ho tanta passione per tutto quello che riguarda il web e le nuove tecnologie, lavoro bene in team e collaboro con aziende e professionisti di settore.