Come già detto più volte, essendo Kotlin basato su Java, è possibile usare le stesse librerie.

E così per connetterci ad un database MariaDB (e MySQL) possiamo usare lo standard JDBC!

Oggi ne vediamo un esempio basico, giusto per iniziare.

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>