Come per ogni architettura dinamica
per il Web che si rispetti anche le JSP hanno la possibilità di interagire con i database, tramite esse
sarà infatti possibile inserire, mostrare, aggiornare ed eliminare i dati presenti in un DB.
La
JDBC, acronimo di Java DataBase Connectivity mette a disposizione un' interfaccia in
linguaggio Java con la quale eseguire istruzioni SQL; in pratica la JDBC funziona sulla base
dell'azione di due driver: JDBC rappresenta il ponte (bridge) essenziale per l'accesso al DB tramite
il driver ODBC del server. Oltre a questo metodo ve ne sono altri due utili per le stesse
finalità:- Driver Java: deputato all'interazione col DB senza la mediazione di driver
bridge; il Driver Java in pratica traduce i comandi di connettività utilizzando direttamente il
protocollo del Database Manager System (ad esempio: MySQL per i database da esso
gestiti)
- Driver API: sistema che prevede la traduzione dei comandi per la Connectivity in richieste
provenienti dal Database Manager.
Nel caso si utilizzi un driver bridge esso dovrà interagire
con un'ODBC funzionante all'interno del file system del server; per rendere questo possibile, nei sistemi
Windows andiamo su: Pannello di Controllo
Strumenti di amministrazione
Origine dati ODBC Quindi
selezioniamo il tipo di DB a cui desideriamo connettere le nostre JSP; confermiamo la scelta effettuata con
"aggiungi" e scegliamo la tipologia di file del DB selezionato; clicchiamo su fine e terminiamo la nostra
istallazione del driver ODBC.
L'interazione tra le JSP e i dati contenuti nei database avviene come
nella maggior parte dei linguaggi di scripting server side con alcune particolarità sintattiche proprie di questa
architettura.
Innanzitutto avremo la fase di connessione che potrà anche essere assegnata come valore ad
una variabile:
connessione = DriverManager.getConnection
("jdbc:mysql://path/db","u","p");
(da
scrivere su di una sola riga).
Come si nota dalla stringa proposta, abbiamo assegnato quale valore alla variabile
"connessione" il risultato dell'azione svolta dalla funzione DriverManager.getConnection sui seguenti parametri: il
driver necessario per la tipologia di DBMS (nel nostro caso MySQL); il percorso al database; la user e la
parola chiave necessarie per l'autenticazione dell'utente.
A questo punto entrano in gioco i noti comandi
SQL, supponiamo per esempio di voler operare una SELECT sui dati di una determinata tabella "tb" corrispondenti
ad un certo parametro; innanzitutto passeremo il parametro "par" alla funzione request.getParameter:par =
request.getParameter("par");
Fatto questo potremo avviare la query (osservate come in valori vengono concatenati
dall'operatore "+"):
connessione.prepareStatement
("SELECT * FROM tb WHERE dato = '" + par +
"'");(da scrivere su di una sola riga).
I risultati dei comandi SQL potranno quindi essere eseguiti
passandoli come parametri ad una funzione come sql.executeQuery().
Riportiamo di seguito un semplice
esempio di connessione ad un database con inserimento di dati:<%@ page language="java" import="java.sql.*" %>
<%
int var = 100;
int result;
Connection connessione = null;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connessione = DriverManager.getConnection
("jdbc:odbc:nome_db","usr","pwr");
stat = connessione.createStatement();
result =
stat.executeUpdate
("INSERT INTO tab (campo) values ("+var+")"));
connessione.close();
%>La
stringa:<%@ page language="java" import="java.sql.*" %> Permette l'importazione del package
java.sql.*senza il quale attraverso le JSP non potremo eseguire comandi SQL.
Di seguito
vengono assegnati i valori alle variabili e caricata la Class del
driver:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Avviene la connessione tra pagina e
DB:
connessione = DriverManager.getConnection
("jdbc:odbc:nome_db","usr","pwr");
Viene
creato lo Statement, cioè un oggetto utilizzato per l'invio di richieste e comandi al
DB:
stat = connessione.createStatement();
Finalmente viene eseguita la query
d'inserimento:
result = stat.executeUpdate
("INSERT INTO tab (campo) values ("+var+")"));
(da
scrivere su di una sola riga).
Infine viene chiusa la connessione:
connessione.close(); Attenzione: Gli articoli su Tomcat presenti in questa sezione sono stati
concessi in esclusiva per la pubblicazione a Mrwebmaster.it; ne
è vietata la riproduzione, anche parziale, senza l'esplicito consenso dell'autore e della redazione di Mrwebmaster.it. |