Ho deciso di eseguire il porting di un mio vecchio programma scritto in Java, da Swing a JavaFX.

Uno dei problemi che ho riscontrato è come rimpire una TableView da database.

Ovviamente le tabelle funzionano in maniera completamente diverse da Swing.

Qua vediamo proprio questo; però tenete in considerazione che:

  • come db uso SQLite (anche se cambia poco)
  • non spiegherò per filo e per segno come usare e installare il driver JDBC per SQLite; vi posterò direttamente il codice

Cominciamo dal db; la tabella che interroghiamo ha questa struttura:

0|id|INTEGER|1||1
1|title|VARCHAR|1||0
2|released|VARCHAR|0||0
3|genre|VARCHAR|0||0
4|director|VARCHAR|0||0
5|writer|VARCHAR|0||0
6|actors|VARCHAR|0||0
7|plot|VARCHAR|0||0
8|poster|VARCHAR|0||0
9|runtime|VARCHAR|0||0
10|imdb_id|VARCHAR|0||0

Per una delle aziende per cui lavoro, ho creato un REST web service in Java, che si connette al database Oracle, ed espone i dati in formato JSON.

Partendo da questo esempio reale, vi mostro come creare un web service REST in Java, usando JAX-WS!

Questo è quello che useremo nel progetto:

  • Maven -> per gestire il progetto e le dipendenze
  • Grizzly -> come HTTP server
  • Jersey -> framework open source per la creazione di servizi RESTful in Java
  • OJDBC -> per la connessione al db Oracle; se avete un altro tipo di db, potete usare JDBC o un altro driver appropriato

Usando JDBC, è abbastanza semplice identificare i metadata di un db.

Ogi vediamo qualche esempio, in cui andremmo a prendere diverse info su db e tabelle.

Ovviamente dovete aggiungere il driver JDBC al vostro progetto; se usate Maven aggiungete questo al vostro pom.xml:

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>

Bene, vediamo due metodi:

  • nel primo tireremo fuori le info generali sul db
  • nel secondo, estrapoleremo info su una tabella passata come argomento.

Non avevo praticamente mai usato Maven prima d'ora, e devo dire che adesso capisco perchè è così usato.

Il problema di oggi, però, è come aggiungere il driver JDBC per Oracle.

Il primo step da fare è aggiungere una dipendenza al pom.xml:

    <dependencies>
        .......................................
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc14</artifactId>
            <version>10.2.0.3</version>
        </dependency>
    </dependencies>

Ultimamente sto un pò combattendo con Oracle e le connessioni su vari linguaggi.

Alla fine della fiera, la cosa più semplice è stata usando Java.

Per la connessione dovete prima di tutto scaricare il driver JDBC corretto; lo potete trovare qua.

A questo punto includetelo nel vostro progetto, e passate al codice.