IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Lier deux tables entre elles


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 30
    Points : 17
    Points
    17
    Par défaut Lier deux tables entre elles
    bonjour,
    je suis une étudiante débutante en java(eclipse),j'ai un projet ou j'ai une basse de donnée donc j'ai arrivé à développer un programme ou j'ai connecté a mes tables et affiché leurs contenus mais j'ai un petit problème c'est que j'ai pas arrivé à lier les tables entre eux dans mes programmes je vous donne un exple pour mieux expliquer alors j'ai deux tables prof, matière et j'ai idmatiere un clé étranger dans la table prof, qui est un clé primary dans la table matière dans la table matière donc c'est que je veux lorsque j'affiche le contenu du table prof j'aime que j'aurais le titre du matière voila le code de mon fonction afficheprof merci de me corriger:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    public void Afficherprof()
    {
    connect();
    String query="SELECT * FROM prof";
    Statement statement;
    try {
    statement = con.createStatement();
    ResultSet resultSet=statement.executeQuery(query);
    while (resultSet.next()) {
    System.out.println(resultSet.getString("idprof")+" "+resultSet.getString("nom")+" "+resultSet.getString("prenom")+" "+resultSet.getString("idmatiere")+" "+resultSet.getString("mail")+" "+resultSet.getString("adresse"));
    }
    con.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

  2. #2
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Donc tu as la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String query="SELECT * FROM prof";
    Et tu veux afficher des données provenant de la table prof et matiere ?

    Ça ne pourra pas fonctionner, ce n'est pas un problème Java, c'est un soucis SQL. Ta requête n'est pas bonne, il faut que tu te familiarises avec les jointures.

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 30
    Points : 17
    Points
    17
    Par défaut
    oui je sais qu'il faut faire une jointure et j'ai essayé de le corriger avec cette modification:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    public void Afficherprof()
    {
    connect();
    String query="SELECT * FROM prof";
    String query1="SELECT titre FROM matiere,prof where prof.idmatiere = matiere.idmatiere";
    Statement statement;
    try {
    statement = con.createStatement();
    ResultSet resultSet=statement.executeQuery(query);
    ResultSet result=statement.executeQuery(query1);
    while (resultSet.next()) {
    System.out.println(resultSet.getString("idprof")+" "+resultSet.getString("nom")+" "+resultSet.getString("prenom")+" "+result.getString("titre")+" "+resultSet.getString("mail")+" "+resultSet.getString("adresse"));
    
    
    }
    con.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    mais lors de l'execution j'aurai
    Unknown column 'matiere.idmatiere' in 'where clause'
    une idee svp pour la corriger

  4. #4
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par nouna10 Voir le message
    Unknown column 'matiere.idmatiere' in 'where clause'
    Car ton champ idmatiere n'existe pas dans la table matiere ? Tu peux utiliser la notation suivante mais ça devrait faire la même chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from matiere M, prof P where M.idmatiere = P.idprof
    En tout ce n'est en rien du au Java ton soucis.

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2010
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 30
    Points : 17
    Points
    17
    Par défaut
    bonjour
    merci pour votre aide j'ai arrivé à resoudre mon problème et je vais publier la bonne réponse peut être aide quelqu'un d'autre...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    public void Afficherprof()
    {
    connect();
    String query="SELECT titre,nom,prenom,mail,adresse FROM matiere m,prof p where p.idprof = m.idprof";
    Statement statement;
    try {
    statement = con.createStatement();
    ResultSet resultSet=statement.executeQuery(query);
    while (resultSet.next()) {
    System.out.println("Mr/Madame: "+resultSet.getString("nom")+ "  "+resultSet.getString("prenom")+ " enseigne la matiere: "+resultSet.getString("titre")+ ", son adresse mail  est: "+resultSet.getString("mail")+" et il/elle habite à: "+resultSet.getString("adresse"));
     
     
    }
    con.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

Discussions similaires

  1. [AC-2007] Lier les tables entre elles
    Par patb12 dans le forum Modélisation
    Réponses: 12
    Dernier message: 30/08/2013, 08h23
  2. Lier deux RadioButtonList entre elles
    Par stefsas dans le forum ASP.NET
    Réponses: 5
    Dernier message: 28/05/2010, 12h30
  3. Réponses: 1
    Dernier message: 02/12/2009, 12h11
  4. Lier deux listes entre elles
    Par gilles974 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/01/2009, 17h17
  5. [VB6]Lier 3 tables entre elles
    Par boudincweole10 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/05/2006, 15h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo