Un piccolo howto per usare MariaDB come database di backend con OpenXava.
OpenXava è un fantastico “low code” (o RAD) per gestire database in filosofia CRUD.
Si tratta di un prodotto fatto in Java, compatibile con molti standard. Crea dei file .WAR (=applicazione) che funzionano negli Application Server (TomCat,  WildFly, JBoss, ecc…) e si può usare attraverso un’interfaccia web sia attraverso un computer, un tablet, uno smartphone.


zip Configurare OpenXava per MariaDB HOT


1.  Introduzione

Configurare la tua applicazione OpenXava per usare MariaDB è semplice. Sostanzialmente è sufficiente aggiungere le dipendenze per il driver JDBC per MariaDB nel tuo progetto e definire correttamente il datasource. Non è necessario toccare il codice della tua applicazione.
Si presuppone che sia già stato installato e stia girando MariaDB 11 o uno più recente.

2.  Aggiungere i driver JDBC per MariaDB al tuo progetto

Editare il file pom.xml situato nella root del progetto, quindi aggiungere le seguenti dipendenze all’interno del blocco <dependencies>:

<!-- MariaDB -->
<dependency>
    <groupId>org.mariadb.jdbc</groupId>
    <artifactId>mariadb-java-client</artifactId>
    <version>3.1.4</version>
</dependency>

3.  Sistemare le definizioni del datasource

Editare il file src/main/webapp/META-INF/context.xml del tuo progetto e commentare la sezione HSQLDB:

    <!-- HSQLDB       
    <Resource name="jdbc/testDS" auth="Container" type="javax.sql.DataSource"
          maxTotal="20" maxIdle="5" maxWaitMillis="10000"
          username="sa" password="" 
          driverClassName="org.hsqldb.jdbc.JDBCDriver"
          url="jdbc:hsqldb:hsql://localhost:1666"/>
    -->

quindi aggiungere il datasource che come segue:

<Resource name="jdbc/myappDS" auth="Container" 
      type="javax.sql.DataSource"
      maxTotal="20" maxIdle="5" maxWaitMillis="10000"
      username="root" password="ao49fmsk"
      driverClassName="org.mariadb.jdbc.Driver"
      url="jdbc:mariadb://localhost:3306/myappdb"/>

Da personalizzare il driverClassName e l’URL. Ovviamente, al posto di localhost va messo l’indirizzo del server MariaDB e la posto di myappdb va messo il nome del database reale. Va anche riportato il corretto username e password. Non dimenticare di commentare o rimuovere il datasource HSQLDB (il default quando crei un nuovo progetto OpenXava). Solo un datasource (con lo stesso nome) deve essere attivo.

4.  Rebuild il progetto

Dopo i cambi bisogna fare nuovamente il build del progetto. In OpenXava Studio clicca con il bottone destro del mouse sul progetto e scegliere  Run As > Maven install.


Se hai Maven nel computer puoi anche usare la linea di comando:

$ cd myapp
$ mvn install

Nota: al posto di mvn install, che ricostruisce tutto il progetto, è possibile usare l’istruzione  mvn war:exploded, senza far ricostruire l’intero progetto. Con OpenXava Studio puoi usare Run As > Maven build... e digitare war:exploded per avere lo stesso risultato.

5.  Lancia l’applicazione

Avvia la tua applicazione e lavorerà con MariaDB. Se non usa l’RDBM, verifica che il server MariaDB sia attivo, che usernamen e password inserite in context.xml sia corrette e che l’IP del server sia corretto. Verifica anche che l’utente di accesso al DB abbia i permessi di creare database e tabelle (se desideri usare le funzioni automatiche di OpenXava di generazione dello schema. Questo non serve se le tabelle già esistono).
Se i problemi persistono puoi usare il Formu di Aiuto di OpenXava. Riporta il contenuto dei file  persistence.xml, context.xml (rimuovi la passwords) e soprattutto lo  stacktrace prodotto, di cui trovi le stringhe nella Console di OpenXava Studio.