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.
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"); } |
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); } |
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 çaLes 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 © 2024 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.