ITportal
a- a+

JDBC e l'accesso ai database (Parte IV)

Pagina 4 di 4

UN TEST CON ACCESS
Andiamo ora a sperimentare una connessione JDBC-ODBC,servendoci di un database Access. Ovviamente, per mettere inpratica l'esperimento, è necessario servirsi di unsistema Windows, giacché Access è un DBMSdisponibile esclusivamente per questa piattaforma.Replichiamo quanto fatto per MySQL, realizzando con Access unfile JSPTest.mdb che contenga una tabella Persone cosìstrutturata:

  1. Nome, di tipo Testo.
  2. Cognome, di tipo Testo.
  3. Indirizzo, di tipo Testo.

Popolate la tabella con i medesimi dati mostrati nelparagrafo precedente. In questo caso, non è necessarioservirsi della riga di comando, giacché Access disponenativamente di un'interfaccia grafica che semplifica lacreazione e l'utilizzo di un database. A questo punto,è necessario registrare il file JSPTest.mdb comesorgente ODBC. Per far ciò, dobbiamo sfruttarel'apposita utility disponibile in Windows, solitamentenominata "Origine Dati (ODBC)".

Nei sistemi di tipo 2000/XP è possibile reperire talevoce tra gli strumenti di amministrazione, mentre lepiattaforme di tipo 98/ME conservano qualcosa di analogodirettamente nel pannello di controllo. Avviate il tool,quindi aggiungete un nuovo riferimento nella scheda "DSNdi sistema". Selezionate il driver "MicrosoftAccess Driver (*.mdb)" , associate al DSN il nomeJSPTest e quindi selezionate il file JSPTest.mdb. Dovresteottenere una scheda come quella mostrata in Fig. 2.Confermate pure ogni operazione.
Il codice della pagina JSP da impiegare per il test èriportato di seguito:

&%@ page import="java.sql.*" %><%!String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";String DB_URL = "jdbc:odbc:JSPTest"; %><html><head>  <title>Corso di JSP, Lezione 11, Esempio 2</title></head><body>  <h1>Accesso ad un database Access</h1>  <%  // Carico il driver.  Class.forName(DRIVER);  // Preparo il riferimento alla connessione.  Connection connection = null;  try {    // Apro la connesione verso il database.    connection = DriverManager.getConnection(DB_URL);    // Ottengo lo Statement per interagire con il database.    Statement statement = connection.createStatement();    // Interrogo il DBMS mediante una query SQL.    ResultSet resultset = statement.executeQuery("SELECT Nome, Cognome, Indirizzo FROM Persone");    // Scorro e mostro i risultati.    while (resultset.next()) {String nome =  resultset.getString(1);String cognome    =  resultset.getString(2);String indirizzo  =  resultset.getString(3);    %>    <b>Nome:</b> <%= nome %><br>    <b>Cognome:</b> <%= cognome %><br>    <b>Indirizzo:</b> <%= indirizzo %><br><br>    <% }  } catch (SQLException e) {    // In caso di errore...  %><b>Eccezione:<</b> <%= e.toString() %><%  } finally {    if (connection != null) connection.close(); }  %></body></html>



Come è possibile osservare, l'unica realedifferenza con il codice sviluppato per la gestione deldatabase di MySQL risiede nella parte:

<%!// Nome del driver.String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";// Indirizzo del database.String DB_URL = "jdbc:odbc:JSPTest";%>



JDBC, infatti, espone un'interfaccia generica chepermette di lavorare alla medesima maniera con tutti i DBMS.In questo caso, infatti, è stato sufficientespecificare il percorso del driver JDBC-ODBC (sun.jdbc.odbc.JdbcOdbcDriver) e l'URL del database Accessprecedentemente associato ad un DSN di sistema (jdbc:odbc:JSPTest).

CONCLUSIONI
Impiegare JDBC è davvero molto semplice. Bisognasemplicemente disporre degli appositi driver (ricordandosianche delle possibilità offerte dal ponte JDBC-ODBC),ed è ovviamente necessario documentarsi su come lospecifico driver debba essere caricato e su quale siasintassi indispensabile per specificare il percorso deldatabase da impiegare. Per il resto, JDBC è unasoluzione comoda ed omogenea. In questa lezione ci siamosoffermati principalmente su quello che orbita intorno aidriver JDBC e al loro utilizzo. Successivamente, scenderemonel dettaglio delle API contenute nel package java.sql, alfine di porre sotto i riflettori i passi necessari per lepiù comuni operazioni di interazione con un database.