Omet navegació

7.1.2 - Connexió

Per a poder establir una connexió des de l'aplicació Java fins la Base de Dades (en el nostre cas eXist) necessitem dos objectes:

 

XQDataSource

Servirà per a identificar l'origen de dades. A partir d'ell crearem les connexions (similars a sessions). De forma genèrica seria:

XQDataSource xqs = new ClasseEspecíficaQueGeneraXQDataSource();

que en el cas concret dels SGBD-XML natives més comuns s'haurà de particularitzar en:

  • eXist serà ExistXQDataSource() .
  • BaseX seria BaseXQDataSource()
  • Sedna seria SednoXQDataSource()

I aquesta seria l'única diferència entre utilitzar un o un altre SGBD-XML natives, a banda de les dades de connexió.

Com que en aquestos apunts únicament utilitzarem eXist-db, la nostra classe serà ExistXQDataSource()

La manera d'indicar el servidor, port, usuari i contrasenya és per mig del mètode setProperty()  Aquest seria un exemple, on connectem al servidor situat en la mateixa màquina, al port 8080 (que és el port per defecte), i com a usuari admin (admin):

XQDataSource s = new ExistXQDataSource();
s.setProperty("serverName", "localhost");
s.setProperty("port", "8080");
s.setProperty("user", "admin");
s.setProperty("password", "admin");

 

 XQConnection

Representa una connexió, una sessió. Mantindrà informació d'estat, transaccions, consultes executades i resultats.

XQConnection conn = s.getConnection();

També es podria passar l'usuari i contrasenya en el moment de fer la connexió:

XQConnection conn = s.getConnection("admin","admin");

I en finalitzar, hem de recordar tancar aquesta connexió:

conn.close(); 

 Aquest seria un exemple on únicament avisem que hem pogut connectar. El podem fer en un projecte nou, anomenat Tema8_2, dins del paquet Exemples

import javax.xml.xquery.XQConnection;
import javax.xml.xquery.XQDataSource;
import javax.xml.xquery.XQException;

import net.xqj.exist.ExistXQDataSource;

public class Prova0_XQJ {

    public static void main(String[] args) throws XQException {
        XQDataSource s = new ExistXQDataSource();
        s.setProperty("serverName", "localhost");
        s.setProperty("port", "8080");
        s.setProperty("user", "admin");
        s.setProperty("password", "admin");

        XQConnection conn = s.getConnection();
        System.out.println("Connexió feta");
        conn.close();
    }
}