SQLITE in Java

Pochi giorni fa, una mia amica mi ha chiesto se potevo realizzare un programma di gestione del personale per una piccola azienda dove lavora. Ho accettato e mi sono messo subito al lavoro ed ecco che mi si presenta il primo grande e immenso problema: questa piccola azienda non ha una macchina Server. Ora, come tutti o spero la maggior parte di voi sa, le applicazioni che usano i database sono applicazioni Client-Server. Quindi, cosa fare? Girovagando per internet e soprattutto grazie al consiglio del nostro admin (Rif) ho optato per SQLITE. Questo programma è molto interessante in quanto crea un "file.db" dove memorizza tutte le informazioni che gli servono; chiaramente ha funzionalità ristrette rispetto ad un'applicazione SQL "normale" tuttavia risulta ottimo per questo genere di utilizzi. Scrivo questa piccola guida in modo tale che se anche voi avete lo stesso problema potete fare come ho fatto io. Entriamo ora nel dettaglio della programmazione.

Iniziamo con lo scaricare la libreria SQLiteJDBC. Successivamente apriamo il nostro ambiente di lavoro (consiglio NetBeans) e una volta creato il progetto, carichiamo la libreria e importiamola in questo modo:

import java.sql.*;

Il prossimo passo è quello di creare un oggetto Connection che è fondamentale per applicazioni SQL. Il mio consiglio è quello di dichiararlo public e static in modo tale che tutti i metodi che andrete a creare potranno usufruire delle sue potenzialità. Scriveremo quindi:

public static Connection conn;

Ora dobbiamo caricare il driver JDBC strumento utilissimo in quanto traduce le operazioni java in sql e si connette con il database. Dichiariamo, quindi, una funzione caricadriver di tipo void in questo modo:

public void caricadriver() {
   try {  Class.forName("org.sqlite.JDBC"); }
   catch(ClassNotFoundException e) {
      System.out.println("Driver SQL non trovato");
      System.exit(1); }
 }

E' la seconda riga che si occupa del caricamento del driver. Se ci fossero dei problemi, tramite il blocco catch stampo a video "Driver SQL non trovato" e termino il programma grazie alla funzione della riga cinque.

Ho appena detto che il driver JDBC mi permette di comunicare con il database, ma quale database? Bella domanda!! Risolviamo questo problema andando a definire un'altra funzione di tipo void che chiameremo collegati. Questa funzione crea appunto un database ( file.db ) se non esiste, altrimenti, se gia esiste, ci si collega. Per questo motivo SQLITE è bello ed utile, in quanto il database non è altro che il file.db nel quale inserirà tutte le informazioni che gli servono. Andiamo nel dettaglio guardando il codice:

public void collegati(){
   try { conn = DriverManager.getConnection("jdbc:sqlite:gestione.db"); }
   catch(SQLException e) {
      System.out.println("Collegamento non riuscito");
      System.exit(1); }
}

La seconda riga è incaricata di creare o di connettersi al database gestione.db, chiamato nel caso specifico "gestione", rinominabile a vostro piacimento. Anche qui se qualcosa va storto verrà eseguita la funzione della riga cinque che stampa il messaggio "Collegamento non riuscito" e la funzione della riga sei che termina il programma.

Et voila!! A questo punto la connessione al database è fatta! Semplice vero? Da qui in poi potete utilizzare tutti i comandi SQL per java che conoscete. Io non posso ovviamente dilungarmi oltre. Vi lascio un piccolo file java a scopo esemplificativo che crea un file "gestione.db", una tabella "clienti" e ci inserisce dei valori.

Prima di terminare l'articolo volevo mostrarvi un'ultima cosa che a me è servita molto. Come faccio a creare una tabella solo una volta? Mi spiego meglio, per l'applicazione della mia amica ho dovuto creare una tabella "clienti" e ovviamente non voglio che ogni volta che apre il programma ci sia una funzione che tenta di costruire tale tabella, in quanto potrei incorrere in spiacevoli errori. Per risolvere questo problema, scaricate dal sito SQLITE la command line. Una volta scaricata copiatela nella directory dove volete creare o avere il file.db. A questo punto se siete utenti Windows aprite il prompt dei comandi, altrimenti se siete utenti Linux aprite il terminale. Spostatevi quindi nella directory in questione e digitate

sqlite3 nome_databse.db

Tale comando esegue lo stesso compito della funzione collegati precedentemente definita e cioè crea o si collega, ove esiste, al file.db. Da qui in poi potete creare tabelle, fare operazioni di select, insomma, tutto quello che volete.

Buon lavoro a tutti!!!

Scarica Applicazione Java SQLITE

P.s. Non vi ricordate i comandi SQL? guardate qui !!

A proposito dell'autore
frizzo • Infamone professionista, è l'avversario più scorretto contro il quale potreste giocare a qualunque cosa, incluso il solitario. E' l'inseparabile nemesi di RemovedQuasar, infatti lo cerca continuamente per compiere qualche altra nefandezza. Prestate bene attenzione a quello che vi dice: se non capite la prima volta, chiedergli di ripetere potrebbe essere fatale...
Altro