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 :

Erreur dans la requete query


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 30
    Points : 22
    Points
    22
    Par défaut Erreur dans la requete query
    bonjour la communauté java,
    j'ai un problème lorsque j'essaie de remplir une jTable avec le résultat d'une requête j'utilise la patter dao
    j'ai une classe DaoLocataireImplementation qui contient une methode getLocataire dont le code est ci-dessous:
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    @Override
        public Vector<Locataire> getLocataire(Locataire locataire){
            Vector<Locataire> listLocataires = new Vector<>();
                con = Connexion.getConnection();
                codeLocataire = locataire.getCodeLocataire();
                query = "select * from locataire where ";
                try {
                    if(!codeLocataire.toString().isEmpty()){
                        query = query + " codelocataire =" + codeLocataire;
                    }   
                    if(!locataire.getNom().isEmpty()){
                        if(query.equals("select * from locataire")){
                            query = query + " nom='" + locataire.getNom() + "'";                    
                        }
                        else{
                            query = query + " and nom='" + locataire.getNom() + "'";
                        }
                    }
                    if(!locataire.getPrenom().isEmpty()){
                    if(query.equals("select * from locataire where ")){
                        query = query + " prenom ='" + locataire.getPrenom() + "'";
                    }
                    else{
                        query = query + " and prenom ='" + locataire.getPrenom() + "'";
                    }
                }
                if(!locataire.getTel().isEmpty()){
                    if(query.equals("select * from locataire where ")){
                        query = query + " tel ='" + locataire.getTel() + "'";
                    }
                    else{
                        query = query + " and tel ='" + locataire.getTel() + "'";
                    }
                }
                if(!locataire.getEmail().isEmpty()){
                    if(query.equals("select * from locataire where ")){
                        query = query + " email ='" + locataire.getEmail() + "'";
                    }
                    else{
                        query = query + " and email ='" + locataire.getEmail() + "'";
                    }
                }
                if(!locataire.getAdresse().isEmpty()){
                    if(query.equals("select * from locataire where ")){
                        query = query + " adresse ='" + locataire.getAdresse() + "'";
                    }
                    else{
                        query = query + " and adresse ='" + locataire.getAdresse() + "'";
                    }
                }
                if(!locataire.getCIN().isEmpty()){
                    if(query.equals("select * from locataire where ")){
                        query = query + " cin ='" + locataire.getCIN() +  "'";
                    }
                    else{
                        query = query + " and cin ='" + locataire.getCIN() + "'";
                    }
                }
                stm = con.createStatement();
                rs = stm.executeQuery(query);
                while(rs.next()){
                    locataire.setCodeLocataire(rs.getInt(1));
                    locataire.setNom(rs.getString(2));
                    locataire.setPrenom(rs.getString(3));
                    locataire.setTel(rs.getString(4));
                    locataire.setEmail(rs.getString(5));
                    locataire.setAdresse(rs.getString(6));
                    locataire.setCIN(rs.getString(7));
                    listLocataires.add(locataire);
                }
                }
                catch(Exception e){
                    JOptionPane.showMessageDialog(null, e.getMessage());
                }
     
                return listLocataires;
        }
    et j'execute le code de cette methode avec le code ci-dessous :
    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
    private void jButtonSearchTenantsActionPerformed(java.awt.event.ActionEvent evt) {                                                     
            // TODO add your handling code here:
            Locataire locataire = new Locataire();
            if(!jTextFieldCodeLocataire.getText().isEmpty()){
                locataire.setCodeLocataire(Integer.parseInt(jTextFieldCodeLocataire.getText()));
            }
            locataire.setNom(jTextFieldNom.getText());
            locataire.setPrenom(jTextFieldPrenom.getText());
            locataire.setCIN(jTextFieldCIN.getText());
            locataire.setEmail(jTextFieldEmail.getText());
            locataire.setAdresse(jTextFieldAdresse.getText());
            locataire.setTel(jTextFieldTel.getText());
            DaoLocataireImplementation dli = new DaoLocataireImplementation();
            Vector<Locataire> listLocataires = dli.getLocataire(locataire);
            JOptionPane.showMessageDialog(null, dli.query);
            DefaultTableModel locatairesTableModel = (DefaultTableModel) jTableLocataires.getModel();
            locatairesTableModel.getDataVector().removeAllElements();
            for(int i = 0 ; i < listLocataires.size(); i++){
                locatairesTableModel.addRow(new Object[]{listLocataires.get(i).getCodeLocataire(),
                    listLocataires.get(i).getCIN(),listLocataires.get(i).getNom(),
                    listLocataires.get(i).getPrenom(),listLocataires.get(i).getTel(),listLocataires.get(i).getEmail(),
                    listLocataires.get(i).getAdresse()});
            }
        }
    lorsque je veux tester la fonction je remplis une zone de text appelle jTextFieldNom avec la valeur elfihri qui est mon nom et j'ai dans la table plusieurs ligne avec le nom est egale a elfihri mais rien ne s'affiche dans la jTable.j'ai introduit dans le code la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JOptionPane.showMessageDialog(null, dli.query);
    pour voir ce qui se passe dans la requete mais je vois que la requete contient select * from locataire where codelocataire=0 and nom='elfihri'
    alors que le champ codelocataire est vide.
    je ne vois pas d'ou vient le probleme.merci d'avance pour votre aide
    cordialement

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 181
    Points
    181
    Par défaut re
    Il te faut tracer tout ça.

    1) Rajoute un System.out.println de ta query, juste avant le
    executeQuery.

    2) Rajoute des System.out juste après avoir récupéré ton Vecteur getLocataire, quand tu le parcoures.

    System.out.println ("le getcin" + getlocataire.get(i).getcin.toString() ....

    Un SystemPane ne suffit pas.

    Et puis apprend à utiliser le mode deboguage aussi. Ca peut servir.
    Bonne chance

Discussions similaires

  1. erreur dans une requete de suppression
    Par el_quincho dans le forum Access
    Réponses: 1
    Dernier message: 28/04/2006, 12h09
  2. Erreur dans la requete...
    Par twizell dans le forum Oracle
    Réponses: 3
    Dernier message: 20/03/2006, 23h19
  3. [VB.NET]Erreure dans une requete
    Par damaskinos dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/03/2006, 19h30
  4. [Access] Erreur dans ma requete
    Par isa21493 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 23/02/2006, 12h06
  5. erreur dans ma requete
    Par isa21493 dans le forum ASP
    Réponses: 2
    Dernier message: 02/09/2005, 11h11

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