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

JDBC Java Discussion :

Résultat d'une requête qui n'affiche rien


Sujet :

JDBC Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 45
    Points : 35
    Points
    35
    Par défaut Résultat d'une requête qui n'affiche rien
    Bonjour,

    Mon objectif est d'implémenter le MVC en Java mais je débute et j'ai une erreur.

    Mon code est réparti entre quatre classes qui communiquent.

    Voici mon code
    Classe formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
        {
            classecontrole ctrl = new classecontrole();
            ctrl.envoicode(zonecode.getText());
        }
     
        public void affichage()
        {
            classecontrole co = new classecontrole();
            String designation = "";
            designation = co.receptiondes();
            zonedesignation.setText(designation);
        }
    Classe controle
    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
        public class classecontrole
        {
            classeentite    ce    = new classeentite();
            String          d     = "";
     
            public void envoicode(String code)
            {
                ce.setcode(code);
                ce.envoiretour();
            }
     
            public String receptiondes()
            {
                d = ce.getdes();
                return d;
            }
        }
    Classe entité
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
        public class classeentite
        {
            private String    codearticle;
            private String    designation;
            private int       prix;
            String            design    = "";
            classecontrole    cto       = new classecontrole();
            formulaire        fm        = new formulaire();
     
            public void setcode(String codearticle)
            {
                this.codearticle = codearticle;
            }
     
            public String getcode()
            {
                return codearticle;
            }
     
            public void setdes(String designation)
            {
                this.designation = designation;
            }
     
            public String getdes()
            {
                return designation;
            }
     
            public void setprix(int prix)
            {
                this.prix = prix;
            }
     
            public int getprix()
            {
                return prix;
            }
     
            public void envoiretour()
            {
                classedao ca = new classedao();
                design = ca.retour(getcode());
                setdes(design);
                fm.affichage();
            }
        }
    Classe Dao
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
        public class classedao
        {
            java.sql.Connection           con;
            java.sql.PreparedStatement    pr;
            java.sql.ResultSet            re;
            String                        url        = "jdbc:odbc:sourcetrois";
            String                        user       = "";
            String                        pwd        = "";
     
            public String retour(String code)
            {
                String designation = "";
                try
                {
                    con = DriverManager.getConnection(url, user, pwd);
                    pr = con.prepareStatement("SELECT designation FROM article WHERE codearticle=?");
                    pr.setString(1, code);
                    re = pr.executeQuery();
                    while (re.next())
                    {
                        designation = re.getString("designation");
                    }
                }
                catch (SQLException ex)
                {
                    Logger.getLogger(classedao.class.getName()).log(Level.SEVERE, null, ex);
                }
                return designation;
            }
        }
    Quelqu'un saurait-il m'indiquer comment faire en sorte que ça s'affiche ?

    Merci d'avance pour votre aide.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 383
    Points : 468
    Points
    468
    Par défaut
    Bonjour,

    Il faut que tu dises ce que tu cherches à faire et que tu indique quelle erreur (ou encore mieux stack trace) tu obtiens.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 45
    Points : 35
    Points
    35
    Par défaut le resultat attendu
    le resultat attendu est l'affichage de la designation dans une zone de texte d'un article enregistré dans une table d'une base de données après avoir saisi le code de cet article dans une autre zone de texte. en bref, il y a deux zones de texte sur le formulaire, on sait dans l'une le code d'un article et on voudrait afficher dans l'autre sa designation qui doit être puisée dans une table d'une base de donnees

  4. #4
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 45
    Points : 35
    Points
    35
    Par défaut Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
    j'obtiens ces genres des lignes à l'exécution :

    Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
    at controle.classecontrole.<init>(classecontrole.java:15)
    at metier.classeentite.<init>(classeentite.java:21)
    at controle.classecontrole.<init>(classecontrole.java:15)
    at metier.classeentite.<init>(classeentite.java:21)
    ...etc et à la fin:
    BUILD SUCCESSFUL (total time: 14 seconds)

  5. #5
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Comme te l'indique la stacktrace, tu as une boucle infinie d'appels (stack overflow), parce que dans le constructeur de classecontrole tu construis un objet classeentite, et dans le constructeur de classeentite tu construis un objet classecontrole ...
    NB : je t'invite à respecter les normes de nommage !!

  6. #6
    Membre émérite
    Avatar de olivier.pitton
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2012
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 355
    Points : 2 814
    Points
    2 814
    Par défaut
    Plop,

    Il te suffit de supprimer la construction de classecontrole dans l'entité. Surtout qu'apparement, tu ne t'en sers pas.

    Et si tu désires t'en servir, au pire, tu passes la référence courante du controle dans l'entité.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 45
    Points : 35
    Points
    35
    Par défaut
    bonjour. j'ai bien supprimé la construction de la classecontrole dans la classe entité, et le message d'erreur ne s'affiche plus. cependant, le resultat de ma requete ne s'affiche toujours pas. j'ai essayé de connecter la classe formulaire directement à la classedao et cela m'a affiché le resultat même si, personnellement je voulais voir comment communiquent les classes (dialogues, controles, entité,et dao).

Discussions similaires

  1. [MariaDB] Exécution d'une requête qui doit afficher plusieurs lignes
    Par mrbrams dans le forum MySQL
    Réponses: 0
    Dernier message: 23/12/2014, 09h16
  2. Réponses: 3
    Dernier message: 26/09/2011, 21h27
  3. Réponses: 2
    Dernier message: 19/08/2011, 10h02
  4. [MySQL] Résultat d'une requête qui ne s'affiche pas
    Par zola013 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/08/2010, 18h44
  5. Réponses: 7
    Dernier message: 21/05/2007, 13h21

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