Impostare l'ambiente di lavoro per
un'applicazione Java che
accede ad un DBMS (MySQL 5.0) mediante JDBC
Scompattare l'archivio esercitazioneJDBC.zip
in c:\
Verranno così create una serie di cartelle che contengono il materiale relativo all'applicazione da realizzare. La struttura delle directory create è la seguente:
esercitazioneJDBC/
|-------bin/
|-------lib/
|-------sql/
|-------src/
Il codice sorgente Java (da completare) è posto nella
cartella src.
Lo script sql per la creazione della base di
dati che vogliamo utilizzare
per l'esercitazione è posto nella cartella sql.
La cartella lib/ contiene il driver
JDBC di MySQL (mysql-connector-java-5.0.8-bin.jar)
scaricabile dal
sito http://dev.mysql.com/downloads/connector/j/5.0.html.
Infine, la cartella bin/ verrà
usata per redirezionarvi il codice binario
dell'applicazione.
src/ConnectionManager.java
con un
editor di testo. public static Connection getConnection()
che deve restituire oggetti di tipo Connection
che consentono l'accesso alla base dati definita in questo script e
creata tramite un utente USR_VIAGGI
Per compilare
l'applicazione di esempio, aprire un Prompt
dei comandi, posizionarsi nella cartella
contenente il progetto (c:\esercitazioneJDBC),
ed eseguire il
comdando
javac -sourcepath src/ -d bin/ src/*.java
Nota: In Java, la compilazione viene eseguita con il comando:
La soluzione è disponibile al linkjavac -sourcepath <source-path> -d <output-path> <source-file-path-names>dove <source-path> è il percorso contenente i sorgenti, <output-path> è il percorso dove porre i file oggetto e <source-file-path-names> sono i nomi dei file sorgente da compilare comprensivi di percorso.
Qualora il codice dovesse dipendere da librerie esterne, queste possono essere aggiunte ridefinendo il percorso di ricerca con l'opzione-cp <class-path>o in alternativa impostando opportunamente la variabile di ambienteCLASSPATH.
Nel nostro esempio, il codice sorgente si trova nella sotto-directorysrc/mentre l'output della compilazione (file .class) viene redirezionato nella sotto-directorybin/. Questa scelta è in linea con l'organizzazione dell'ambiente di lavoro impostata all'inizio dell'esercitazione. In generale, organizzare l'ambiente di lavoro secondo lo schema proposto agevola la manutenzione dell'applicazione e la sua analisi da parte di chi non ha partecipato alla realizzazione dell'applicazione.Sebbene il compilatore sia in grado di gestire i time-stamp dei sorgenti e del codice oggetto per minimizzare il numero di oggetti da ricompilare, a volte può essere opportuno forzare la ricompilazione dell'intera applicazione. Per fare ciò è necessario cancellare completamente il contenuto della cartella
eseguito avendo come directory quella contenente il progetto e confermando via via le operazioni di cancellazione delle singole sotto-directory.bin/.
In ambiente Windows ciò può essere ottenuto con il comando
del /S bin
ConnectionManager.java.
java -cp bin/;lib/mysql-connector-java-5.0.8-bin.jar EsempioJDBCA questo punto chiedete all'applicazione di visualizzare le vacanze disponibili (cliccando semplicemente sul bottone corrispondente)
Nota: In Java, l'esecuzione dell'applicazione viene attivata specificando il nome della classe pubblica contenente il metodo con la segnatura:
public static void main(String[] args)detta anche main-class. Il codice delle classi (e delle risorse) necessarie all'esecuzione dell'applicazione devono essere raggiungibili mediante il class-path, che specifica un elenco di directory e di assembly (file con estensione.jar) contenenti gli elementi in questione. Il percorso predefinito comprende le librerie standard, la directory corrente e quanto specificato nella variabile di ambienteCLASSPATH. Nel caso dell'esempio, invece, le classi dell'applicazione sono poste nella cartellabin/, mentre il driver JDBC è contenuto nell'assemblymysql-connector-java-5.0.8-bin.jarposto nella cartellalib/. Per specificare il nuovo percorso di ricerca si utilizza l'opzione-cp <class-path>.
EsempioJDBC.visualizzaPartecipanti(String
descVacanza) in modo che venga visualizzato nel
campo di
testo output l'elenco dei villeggianti che hanno partecipato alla
vacanza di cui
è fornita la descrizione.visualizzaVacanze().Statement che PrepareStatement.EsempioJDBC.java.