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 :

Problème de reconnaissance d'un String


Sujet :

Langage Java

  1. #1
    Futur Membre du Club Avatar de delandam
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2016
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Problème de reconnaissance d'un String
    Bonjour,

    J'ai un problème avec une méthode liée à une classe Java :

    Je récupère le texte d'un JTextField et le compare aux champs correspondant dans ma base de données; l'IDE (Netbeans) n'arrive pas à faire correctement la comparaison.

    Je ne vois pas la solution, need some help, please !

    Code class JFConnexion Stagiair:
    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
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    package qcm;
    
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JPasswordField;
    import javax.swing.JTextField;
    
    import placeur.Placeur;
    
    public class JFConnexionStagiaire extends JFrame implements ActionListener
    {
    	JTextField 		jtfPseudo 	= new JTextField();
    	JPasswordField 	jpwStagiaire= new JPasswordField();
    	JButton			jbConnexion = new JButton("Connexion");
    
    	public JFConnexionStagiaire()
    	{
    		int marge = 5, hauteur = 25, largeur = 250;
    		Placeur p = new Placeur(marge,largeur,hauteur,this);
    		p.placer(this.jtfPseudo);
    		p.allerALaLigne();
    		p.placer(this.jpwStagiaire);
    		p.allerALaLigne();
    		p.placer(this.jbConnexion);
    		p.allerALaLigne();
    		p.tracerFormulaire(200, 200);
    
    		this.jbConnexion.addActionListener(this);
    
    		this.setTitle("Connexion stagiaire");
    		this.setVisible(true);
    		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    	}
    	public static void main(String[] args)
    	{
    		try
    		{
    			ResultSet rs = BDD.résultat("SELECT `numéroTestEnCours` FROM `paramètres` ");
    			rs.first();
    			if (rs.getInt(1)== -1)
    			{
    				JOptionPane.showMessageDialog(null, "Pas de test en cours");
    				System.exit(0);
    			}
    			new JFConnexionStagiaire();
    		}
    		catch (Exception e)
    		{
    		}
    	}
    	public void actionPerformed(ActionEvent ae)
    	{
                if (ae.getSource()==this.jbConnexion){
                    String pseudo_entré=this.jtfPseudo.getText();
                    String password_entré=String.valueOf(this.jpwStagiaire.getPassword());
    //                System.out.println(this.jtfPseudo.getText());
    //                System.out.println(String.valueOf(this.jpwStagiaire.getPassword()));
                String requete = "SELECT pseudo, nom, motDePasse FROM stagiaires";
                ResultSet rs = BDD.résultat(requete);
                    try {
                        while (rs.next()){   
                            String pseudo = rs.getString("pseudo");
                            System.out.println(pseudo+","+pseudo_entré);
                            if (pseudo != pseudo_entré){
                                
                                System.out.println("bien joué");
    //                            if (rs.getString("motDePasse")!= password_entré)
    //                            {JOptionPane.showMessageDialog(this, "mot de passe non concordant");}
    //                            else {
    //                                String nom=rs.getString("nom");
    //                            JOptionPane.showMessageDialog(this, "Bonjour "+rs.getString("nom")+" !");
    //                            String requete1 = "SELECT titreQuestionnaire FROM tests WHERE état = 'D'";
    //                            ResultSet rs1 = BDD.résultat(requete1);
    //                            rs1.first();
    //                            String tQ = rs1.getString("titreQuestionnaire");                            
    //                            new JFTest(new Test(new Questionnaire(tQ)), new Stagiaire(pseudo, nom));
    //                            }
                                                   
                            }
                            
                            
    //                        System.out.println(pseudo+","+rs.getString("nom")+","+rs.getString("motDePasse")); 
                        }                    
                    }            
                           catch (SQLException ex) 
                    {
                        Logger.getLogger(JFConnexionStagiaire.class.getName()).log(Level.SEVERE, null, ex);
                    }                        
                }
             	}}
    Jeu d'essai :
    pierre,damien
    bien joué
    paul,damien
    bien joué
    jacques,damien
    bien joué
    damien,damien
    bien joué
    D'avance merci.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    On ne laisse pas des catch(Exception e) vide, c'est un coup à ne pas savoir ce qui se passe en cas d'erreur. Toujours traiter tes exception ou les remonter, ne pas les jeter.
    Prends l'habitude de fermer tes ResultSet. Les trys with resources sont là pour t'aider à le faire facilement.
    Toujours tester qu'il y a un resultat avant d'essayer de le lire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    		try(ResultSet rs = BDD.résultat("SELECT `numéroTestEnCours` FROM `paramètres` "))
    		{
    			if (!rs.next() || rs.getInt(1)== -1)
    			{
    				JOptionPane.showMessageDialog(null, "Pas de test en cours");
    				System.exit(0);
    			}
    			new JFConnexionStagiaire();
    		}
    		catch (Exception e)
    		{
                            e.printStackTrace();
    		}
    Tu utilise une base de données, le WHERE dans les requête est là pour t'éviter de pomper toute la base donnée à la recherche d'un seul élément.
    On utilise equals, pas == ou != pour comparer des objet en java. == c'est pour les valeurs primitives ou pour comparer les instance pas la valeur.
    Ta logique est incorrecte: tu cherche les lignes où le mot de passe est correct mais le login incorrect.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    try(PreparedStatement stmt = taConnextion.prepareStatement("SELECT pseudo, nom, motDePasse FROM stagiaires where pseudo=? and motDePasse=? ")){
      stmt.setString(1, login);
      stmt.setString(2, motDePasse);
      try(ResultSet rs = stmt.executeQuery()){
        if (rs.hasNext()){
           // trouvé
        }
      }
    } catch (SQLException e){
      e.printStackTrace();
    }

  3. #3
    Futur Membre du Club Avatar de delandam
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2016
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Réponse
    Bonjour,

    Merci pour ta réponse.

    J'ai justement mis != car == ne me donnait aucun résultat, ni message d'erreur, il ne se passait rien avec ==. En mettant !=, j'ai ainsi pu voir le problème avec le jeu d'essai.

    Cordialement,

    Delandam

Discussions similaires

  1. CSS, problème de reconnaissance de la feuille de style
    Par polo42 dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 05/09/2006, 13h48
  2. Problème de reconnaissance javascript vbscript
    Par mouste79 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/05/2006, 19h12
  3. (Problème avec...) conversion de std::string en char
    Par crossbowman dans le forum SL & STL
    Réponses: 7
    Dernier message: 05/03/2006, 19h54
  4. problème de conversion int[x] --> string
    Par poussinphp dans le forum SL & STL
    Réponses: 2
    Dernier message: 17/08/2005, 14h45
  5. [FLASH MX2004] Problème de reconnaissance des caractères
    Par Spikefreeman dans le forum Flash
    Réponses: 10
    Dernier message: 04/01/2005, 23h08

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