Pages enfant
  • Database esup-utils-mag

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Chaque canal déclare dans son fichier de configuration les connexions qu'il est susceptible d'utiliser, et ce de la manière suivante :

Pas de formatcode


<pools>
	<pool *name="nom logique du pool"
		*type="JNDI ou JDBC"
		*url="Nom du pool tomcat si JNDI ou URL du driver JDBC"
		driverClassName="classe du driver si JDBC"
		username="nom du user pour la connexion JDBC"
		password="password pour la connexion JDBC"/>
	......
</pools>

* = obligatoire

Il est à noter que les balises "pool" désignent soit un pool Tomcat (type=JNDI), soit une connexion JDBC simple (type=JDBC).

...

Pour pouvoir utiliser les connexions, on récupère sous forme de hashMap la liste des connexions définies dans le fichier de configuration du canal. Il s'agit d'une liste d'objet Database.

Pas de formatcode
private HashMap connexions = Config.getInstance().getPools();

...

  • Soit en utilisant la connexion définie comme "default" (attribut name) dans le fichier de configuration :
Pas de formatcode
qry = Config.getInstance().getConnexionDefault();
  • Soit en utilisant la hashMap de connexions avec comme clé le nom logique du pool
Pas de formatcode
qry = new Query((Database) connexions.get("Apogee1"));

Il suffit alors d'effectuer son ordre SQL de la façon suivante :

Pas de formatcode
try {
	qry = new Query((Database) connexions.get("Apogee1"));
	qry.setSQL("select distinct a.g_n2_cod || '|' || a.g_n3_cod \"CODE\",....
			"from nw_adm_acces@NABUCOWEB a, g_nv3@NABUCOWEB n " +
			"where a.login = ? and n.g_n1_cod = a.g_n1_cod .... ");
	// on passe les paramètres à la requête
	qry.getStmt().setString(1, login);
	// on exécute l'ordre SQL
	qry.select();
	while (qry.getRs().next()){
	   <traitement du resultset>
	}
}
catch (SQLException e) {
	LogService.log(LogService.ERROR ,<msg d'erreur>);
}
finally {
	qry.close();
}

...