Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
FORUMS JAVA FAQs TUTORIELS JAVASEARCH SOURCES LIVRES OUTILS, EDI & API ECLIPSE NETBEANS BLOG DISCUSSIONS TV
Tutoriel JDBC
9.0 Utiliser les jointures.

Parfois, il vous faut utiliser deux ou plusieurs tables pour accéder à l'information que vous voulez. Par exemple, supposons que le propriétaire du The Coffee Break veut une liste des cafés qu'il a achetés chez Acme, Inc. Cela demande des informations dans la table CAFE ainsi que dans la table FOURNISSEURS. C'est un des cas ou une jointure est nécessaire. Une jointure est une opération qui relie deux ou plusieurs tables par les valeurs qu'elles ont en commun. Dans notre base de données, les tables CAFE et FOURNISSEURS ont toutes deux la colonne FO_ID, qui pourra être utilisée pour joindre les deux tables.

Mais avant d'aller plus loin, nous devons créer la table FOURNISSEURS et la remplir de ses valeurs.
Le code ci-dessous créera la table FOURNISSEURS :

String createFournisseurs = "create table FOURNISSEURS" +
"(FO_ID INTEGER, NOM_FO VARCHAR(40),RUE VARCHAR(40), VILLE VARCHAR(20), " +
"ETAT CHAR(2), CODE_POSTAL CHAR(5))";
stmt.executeUpdate(createFournisseurs);

Le code suivant insère les lignes pour les trois fournisseurs dans FOURNISSEURS :

stmt.executeUpdate("insert into FOURNISSEURS values (101,'Acme, Inc.',"+ "'99 Market Street', 'Groundsville', 'CA', '95199'");
stmt.executeUpdate("Insert into FOURNISSEURS values (49,'Superior " + "Coffee', '1 Party Place', 'Mendocino', 'CA','95460'");
stmt.executeUpdate("Insert into FOURNISSEURS values (150,'The High"+ "Ground', '100 Coffee Lane', 'Meadows', 'CA','93966'");

Maintenant que nous avons les tables CAFE et FOURNISSEURS, nous pouvons procéder au scénario où le propriétaire veut obtenir la liste des cafés qu'il a achetés auprès d'un fournisseur en particulier. Le nom des fournisseurs se trouve dans la table FOURNISSEURS et le nom des cafés se trouve dans la table CAFE. Deux des tables possèdent maintenant la colonne FO_ID, cette colonne peut être alors utilisée comme jointure. Mais vous devez pouvoir distinguer de quelle table on parle lorsque la colonne FO_ID est utilisée. On utilise pour ça, le nom de la table devant la colonne séparée par un point, par exemple " CAFE.FO_ID" réfère que vous utilisez la colonne FO_ID de la table CAFE. Le code suivant, dans lequel stmt est un objet Statement, sélectionne les cafés achetés chez Acme, Inc :

String requete = "
SELECT CAFE.NOM_CAFE" +
"FROM CAFE, FOURNISSEURS " +
"WHERE FOURNISSEURS.NOM_FO LIKE 'Acme,Inc.''" +
"and FOURNISSEURS.FO_ID = CAFE.FO_ID";

ResultSet rs = stmt.executeQuery(requete);
System.out.println("Les café acheté à Acme, Inc. : ");
while(rs.next()){
String nomCafe= rs.getString("NOM_CAFE");
System.out.println(" " + nomCafe);
}

Cela devrait produire le résultat suivant :

Les café acheté à Acme, Inc. :
Colombian
Colombian_Decaf

Précédent Suivant

Responsables bénévoles de la rubrique Java : Eric Siber et Baptiste Wicht - Contacter par EMail :
Vos questions techniques : forum d'entraide Java - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.