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:
- Nome, di tipo Testo.
- Cognome, di tipo Testo.
- 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.
- Articolo precedente JDBC e l'accesso ai database (Parte III)
- Articolo successivo La security (Parte I)