ITportal
a- a+

JDBC e l'accesso ai database (Parte III)

Pagina 3 di 4

Passiamo in rassegna le operazioni effettuate:

<%@ page import="java.sql.*" %>


Con questa riga viene reso visibile il contenuto del pacchetto java.sql, che contiene le API JDBC.

<%! String DRIVER = "com.mysql.jdbc.Driver";
String DB_URL = "jdbc:mysql://localhost:3306/JSPTest"; %>


Qui vengono dichiarate due stringhe. La prima tiene traccia del nome del driver JDBC di cui ci si dovrà servire. Nel caso di Connector/J, che abbiamo installato in precedenza, il percorso da indicare è proprio com.mysql.jdbc.Driver. Con la stringa DB_URL, invece, si tiene traccia del database cui connettersi. La sintassi desiderata da Connector/J è la seguente:

jdbc:mysql://[hostname][:port]/[dbname][?param1=
value1][¶m2=value2]...


In questo caso, si è supposto che MySQL sia in esecuzione sulla stessa macchina che gestirà la pagina JSP (localhost) e che la porta ascoltata dal DBMS sia la numero 3306 (la predefinita di MySQL). Quindi, è stato specificato il nome del database con cui lavorare (JSPTest, creato poco sopra). Non sono stati impiegati parametri aggiuntivi. Se il database da voi realizzato è stato protetto con una coppia di dati username-password, bisognerà impiegare una lista di parametri così organizzata:

jdbc:mysql://localhost:3306/JSPTest?user=
nome&password=pass


In definitiva, il percorso specificato nel codice di esempio deve essere variato in base alle esigenze.

Class.forName(DRIVER);


Questa istruzione carica in memoria il driver, in modo che possa poi essere sfruttato dal codice Java che segue.

Connection connection = null;


Viene preparato il riferimento ad un oggetto Connection, necessario per stabilire una connessione con il DBMS. Tutto quello che segue è racchiuso in un blocco try ... catch, poiché a rischio di eccezione: i disguidi, infatti, sono sempre in agguato (il DBMS, ad esempio, potrebbe essere momentaneamente non disponibile).

Connection connection = 
DriverManager.getConnection(DB_URL);


Questa istruzione stabilisce la connessione ricercata.

Statement statement = connection.createStatement();


Questa riga prepara ed ottiene un oggetto Statement. Questo tipo di oggetto è necessario per interagire con il DBMS attraverso delle query espresse servendosi del linguaggio SQL.

ResultSet resultset = statement.executeQuery(
  "SELECT Nome, Cognome, Indirizzo FROM Persone"
);


Una query SQL che recupera l'intero contenuto della tabella Persone viene sottoposta al DBMS. I risultati saranno conservati in un oggetto di tipo ResultSet.

while (resultset.next()) { ... }


Questo ciclo scorre l'insieme dei risultati ottenuti. Il corpo del ciclo sarà ripetuto tante volte quanti sono i record restituiti da DBMS. Il metodo next() di un oggetto RecordSet, infatti, ha duplice funzionalità: scorre in avanti l'elenco dei record ottenuti e restituisce true fin quando non si giunge al termine dell'esplorazione.

String nome       =  resultset.getString(1);
String cognome  =  resultset.getString(2);
String indirizzo    =  resultset.getString(3);


All'interno del ciclo while, i singoli campi della tabella Persone vengono recuperati e memorizzati all'interno di apposite stringhe.

<b>Nome:</b> <%= nome %><br>
<b>Cognome:</b> <%= cognome %><br>
<b>Indirizzo:</b> <%= indirizzo %><br><br>


Questo codice mostra i risultati in output.

if (connection != null) connection.close();


La connessione, al termine di ogni operazione (clausola finally) viene chiusa, se attiva.

Continua >>>



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Luca
Ti è piaciuto l'articolo?