Fino ad ora abbiamo utilizzato per le nostre prove il semplice database di prova messo a disposizione di iReport; esso è basato sul motore HSQLDB, un database engine scritto in Java e facilmente integrabile con varie modalità nei propri progetti. Le applicazioni “reali” però nella stragrande maggioranza dei casi sono basate su altri motori di database: l’onnipresente MySql, PostgreSql o Oracle, solo per citare i più usati. In questo appuntamento vedremo come collegarci al database MySql, ma il procedimento per gli altri è del tutto simile.
Installare il motore di database e i tool necessari
Il database MySql è prelevabile gratuitamente nella versione Community Server dal sito della compagnia, inoltre molte distribuzioni Unix-like hanno la possibilità di installarlo automaticamente tramite i propri gestori di pacchetti, per cui non ci soffermeremo troppo su questo aspetto. Lo stesso si può dire per il suo concorrente diretto, ovvero PostgreSQL.
Insieme ai motori di database viene offerta la possibilità di installare una suite di programmi per l’amministrazione e la gestione del database. Per l’interazione quotidiana con il database tuttavia ci sentiamo di consigliarvi un a valida alternativa: SQuirreL SQL Client. È un client di database universale scritto in Java dalle caratteristiche molto interessanti:
- è cross-platform, essendo scritto in Java come iReport;
- utilizza le JDBC API per accedere ai database, ovvero lo standard di Java che verrà usato anche dal nostro codice. Siamo quindi sicuri che le query SQL testate in SQuirreL funzioneranno anche nei nostri programmi;
- si può collegare praticamente ad ogni database tramite il bridge JDBC-ODBC, ma con i driver all-Java forniti dai produttori di database abbiamo esattamente lo stesso tipo di collegamento che hanno le nostre applicazioni;
- la sua struttura a plugin ha fatto nascere diverse estensioni, principalmente per estenderlo con funzionalità specifiche dei vari database, ma anche utilità come bookmark, script per il refactoring delle tabelle, e molto altro;
- ultimo, ma non in ordine di importanza: nonostante giri nella JVM è un programma piuttosto “leggero” e non impatta in maniera esagerata sulle prestazioni del vostro PC.
Configurare il collegamento
Creiamo ora una connessione al database da SQuirreL:
- assicurarsi che il servizio MySql sia in esecuzione;
- aprire SQuirrel e andare nella sezione Drivers;
- cercare la voce MySql Driver e fare doppio clic per modificarla;
- andare nel tab extra class path, cliccare sul pulsante Add. Nella directory ide10/modules/ext di iReport sono già presenti le librerie JDBC di MySql e PostgreSQL, cioè dei file con estensione .jar. Selezionare quindi il file mysql-connector-java-5.1.6-bin.jar (il n. di versione può cambiare a seconda di quanto è aggiornato il vostro iReport);
- ora il simbolo accanto al driver MySql sarà cambiato, al posto della croce di colore rosso ci sarà un segno di spunta: vuol dire che il driver è pronto per l’utilizzo;
- andare ora nel tab Aliases e cliccare sul simbolo “+” in alto;
- dare un nome all’alias e selezionare il driver MySql;
- nel campo URL inserire questa stringa di connessione:
jdbc:mysql://localhost/
- username e password non sono strettamente necessari, senza contare che salvare i dati di connessione (in chiaro, come specificato da un minaccioso warning di SQuirreL!) ad una macchina di produzione non è certo un modo intelligente di gestire la sicurezza…
Controllo delle versioni
Un progetto “serio”, soprattutto se realizzato in team, non può esimersi dall’utilizzare un sistema per il controllo delle versioni (VCS o Version Control System). Vi risparmiamo tutti i discorsi sulle motivazioni, le best practice e quant’altro perché non ci basterebbe il blog, ma ci limitiamo a dare qualche consiglio:
- appena create un report, eseguite un commit nel VCS da voi scelto;
- nel VCS salvate solamente i file con estensione .jrxml e le eventuali risorse, che solitamente sono immagini di tipo JPEG o PNG;
- non salvate nel VCS i file .jasper: questi infatti sono le versioni “compilate” dei report, direttamente eseguibili dal motore di reporting. Questo vuol dire che sono file binari, del tutto inutili ai fini del tracciamento delle versioni (possono infatti essere riprodotti in ogni momento) e decisamente più ingombranti dei propri sorgenti;
- ovviamente anche i rendering dei report (file .pdf, .xls, .html eccetera) vanno esclusi dal VCS, visto che sono solamente dei test che avete eseguito voi sulla vostra postazione e con chissà quali dati.
Sviluppi
Nei prossimi articoli non utilizzeremo più il database di prova fornito da iReport ma cominceremo a realizzare report e applicazioni decisamente più professionali, per cui sarà necessario avere un ambiente configurato a dovere. Al prossimo appuntamento allora!