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 in pratica l'esperimento, è necessario servirsi di un sistema Windows, giacché Access è un DBMS disponibile esclusivamente per questa piattaforma. Replichiamo quanto fatto per MySQL, realizzando con Access un file 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 nel paragrafo precedente. In questo caso, non è necessario servirsi della riga di comando, giacché Access dispone nativamente di un'interfaccia grafica che semplifica la creazione e l'utilizzo di un database. A questo punto, è necessario registrare il file JSPTest.mdb come sorgente ODBC. Per far ciò, dobbiamo sfruttare l'apposita utility disponibile in Windows, solitamente nominata "Origine Dati (ODBC)".

Nei sistemi di tipo 2000/XP è possibile reperire tale voce tra gli strumenti di amministrazione, mentre le piattaforme di tipo 98/ME conservano qualcosa di analogo direttamente nel pannello di controllo. Avviate il tool, quindi aggiungete un nuovo riferimento nella scheda "DSN di sistema". Selezionate il driver "Microsoft Access Driver (*.mdb)" , associate al DSN il nome JSPTest e quindi selezionate il file JSPTest.mdb. Dovreste ottenere 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 reale differenza con il codice sviluppato per la gestione del database 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 che permette di lavorare alla medesima maniera con tutti i DBMS. In questo caso, infatti, è stato sufficiente specificare il percorso del driver JDBC-ODBC (sun.jdbc.odbc .JdbcOdbcDriver) e l'URL del database Access precedentemente associato ad un DSN di sistema (jdbc:odbc :JSPTest).

CONCLUSIONI
Impiegare JDBC è davvero molto semplice. Bisogna semplicemente disporre degli appositi driver (ricordandosi anche delle possibilità offerte dal ponte JDBC-ODBC), ed è ovviamente necessario documentarsi su come lo specifico driver debba essere caricato e su quale sia sintassi indispensabile per specificare il percorso del database da impiegare. Per il resto, JDBC è una soluzione comoda ed omogenea. In questa lezione ci siamo soffermati principalmente su quello che orbita intorno ai driver JDBC e al loro utilizzo. Successivamente, scenderemo nel dettaglio delle API contenute nel package java.sql, al fine di porre sotto i riflettori i passi necessari per le più comuni operazioni di interazione con un database.

 



Ti potrebbe interessare anche

commenta la notizia

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