FAQ JDBCConsultez toutes les FAQ

Nombre d'auteurs : 8, nombre de questions : 162, dernière mise à jour : 3 juin 2015  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums de http://www.developpez.com et de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rédacteur, lisez ceci.


SommaireLes RowSetLes JoinRowSet (2)
précédent sommaire suivant
 

L'interface JoinRowSet qui étend WebRowSet permet d'utiliser les JOIN SQL. Toute instance de Joinable peut faire partie du JOIN, c'est-à-dire tout RowSet, qu'il soit connecté ou non. Il suffit de peupler le JoinRowSet de deux Joinable (ou plus) et de lui indiquer quelles vont être les colonnes de comparaison. On peut noter que ces dernières peuvent notamment avoir des noms et des types SQL différents (il suffit que les données soient comparables). Voici un exemple :

Code java : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/**Données nécessaires à la connexion*/ 
String url = "url"; 
String user = "user"; 
String password = "password"; 
/**Récupération des données dont on souhaite faire une jointure*/ 
  
// Création de la première partie du JOIN 
CachedRowSet unJoinable = new CachedRowSetImpl(); 
unJoinable.setUrl(url); 
unJoinable.setUsername(user); 
unJoinable.setPassword(password); 
unJoinable.setCommand("SELECT id, nom, prenom FROM Annuaire"); 
unJoinable.execute(); 
// Seconde partie du JOIN 
CachedRowSet unAutreJoinable = new CachedRowSetImpl(); 
unAutreJoinable.setUrl(url); 
unAutreJoinable.setUsername(user); 
unAutreJoinable.setPassword(password); 
unAutreJoinable.setCommand("SELECT id, nom, prenom FROM Annuaire2"); 
unAutreJoinable.execute(); 
/**Création de la jointure*/ 
JoinRowSet join = new JoinRowSetImpl(); 
//il suffit d'indiquer au JoinRowSet les colonnes de correspondance 
  
//ici ce sera la première colonne, le champ id 
join.addRowSet(unJoinable,1); 
join.addRowSet(unAutreJoinable,1); 
//lecture et traitement des données 
while(join.next()){ 
   for(int i=0; i<join.getMetaData().getColumnCount();i++){ 
      System.out.print(join.getObject(i+1)+" "); 
   } 
   System.out.print("\n"); 
}
Il est même tout à fait envisageable de faire des jointures entre différentes bases de données, tournant sur différents modèles de SGBDR.

Mis à jour le 11 avril 2013 Ioan

L'interface JoinRowSet permet de faire cinq types de JOIN. Ceux-ci correspondent aux cinq variables publiques et statiques de JoinRowSet.

  • CROSS_JOIN
  • FULL_JOIN
  • INNER_JOIN : c'est le type par défaut
  • LEFT_OUTER_JOIN
  • RIGHT_OUTER_JOIN

Pour spécifier le type de jointure, il faut utiliser la méthode setJoinType, en prenant soin de vérifier que l'implémentation accepte le type de JOIN en question. Si le type de JOIN n'est pas supporté, une SQLException sera levée. Voici un exemple :

Code java : Sélectionner tout
1
2
3
4
JoinRowSet rowset = new JoinRowSetImpl(); 
if(rowset.supportsFullJoin()){ 
   rowset.setJoinType(JoinRowSet.FULL_JOIN); 
}

Mis à jour le 11 avril 2013 Ioan

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2017 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

 
Responsables bénévoles de la rubrique Java : Mickael Baron - Robin56 -