03FYZ TECNICHE DI PROGRAMMAZIONE
Esercitazione di Laboratorio 04 – 27 Marzo 2014
Obiettivi dell’esercitazione:
 Database
 Controller e Gestione Eventi in FXML
 DAO
Realizzare in linguaggio Java un programma per verificare la presenza di parole all’interno di un
database. Il database da utilizzare è “dizionario”, scaricabile dalla sezione “Materiale” del sito del
corso. Per importarlo, avviare il database locale tramite il MySQL Workbench1 e selezionare
l’opzione “Manage Import / Export” presente all’interno della sezione “Server Administration” del
Workbench stesso2; nella finestra che si aprirà selezionare “Data Import/Restore” dalla colonna
sulla sinistra, poi “Import from Self-Contained File” e quindi selezionare il file mark.sql (presente
all’interno dell’archivio scaricato dal sito), che conterrà la tabella utile per questa esercitazione.
Il programma dovrà essere in grado di effettuare alcune query al database, di calcolare i tempi
necessari per portare a termine ogni operazione richiesta e di visualizzare il numero di risultati
trovati. In questo modo sarà possibile confrontare le prestazioni delle diverse implementazioni
richieste negli esercizi.
Si realizzi l’applicazione facendo uso dei pattern MVC e DAO.
Esercizio 1.1 - L’utente inserisce una o più lettere in una casella di testo e lancia la ricerca
cliccando sul bottone “Cerca”. La query dovrà interrogare il database e ottenere il
conteggio di tutte le parole che iniziano con i caratteri digitati dall’utente. Per
contare il numero di risultati, eseguire una query SELECT COUNT().
Esercizio 1.2 - Modificare il programma precedente inserendo i risultati all’interno di un ArrayList
e contando gli elementi presenti nell’ArrayList stesso, invece di usare la query
COUNT().
Esercizio 1.3 – All’avvio del programma scaricare l’intero database in un ArrayList, e poi eseguire
le ricerche richieste dall’utente all’interno dell’ArrayList stesso, senza accedere
nuovamente al database (visualizzare anche il tempo necessario per lo scaricamento
del database completo, in modo da tenerne conto nel calcolo delle prestazioni).
1
2
In alternativa, avviare MySQL dal pannello di controllo XAMPP
In alternativa, utilizzare il comando File / Carica file SQL del programma HeidiSQL
Esercizio 2 – Prendendo in considerazione l’esercizio 1 dell’esercitazione n°3, inserire un controllo
aggiuntivo per verificare che ogni parola inserita sia presente nel DB “dizionario”;
nel caso in cui non sia presente, segnalare l’errore all’utente attraverso l’apposito flag
e non effettuare l’inserimento della parola nella struttura dati.
Esercizio 3 – Prendendo in considerazione l’esercizio 2 dell’esercitazione 3 (il “gioco
dell’impiccato”), modificare il programma in modo tale che sia in grado di
selezionare in modo casuale una parola dal DB “dizionario”, eliminando dunque la
sezione relativa all’inserimento della parola segreta.
Alla pressione del tasto “Nuova Partita”, il programma dovrà resettarsi e
selezionare una nuova parola scelta a caso tra quelle presenti nel DB.
Esercizio 4.1/4.2/4.3 – (OPZIONALE)
Modificare i tre programmi creati negli esercizi precedenti, eliminando il bottone
per eseguire la ricerca. La ricerca dovrà essere effettuata in tempo reale, ogni volta
che l’utente inserirà una nuova lettera nella casella di testo (l’evento che scatenerà
la ricerca non sarà più legato alla pressione del bottone di ricerca, ma alla
digitazione all’interno della casella di testo).