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 :

Probleme avec info getString


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 32
    Par défaut Probleme avec info getString
    bonsoir tout le monde
    je suis occupé à apprendre le jdbc en utiliseant le langage sql
    je rencontre un probleme avec deux méthodes
    1° la méthode getString(String colonne) du la classe ResultSet
    2° la methode equals(String otherString)
    ci dessous j'ai créée une methode test afin de mieux comprendre la chose,

    mon probleme est que lorsque je compare mes deux chaines String oldPasswd et la chaine dans la db password (qui sont parfaitement identique) cela me retourne la valeur false.....
    la méthode getString(String colonne) retourne uniquement le String (exemple "passwordtest" ou la cellule (ici formatté a 30 caracteres) ???

    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
    	public static void changerPassword(Connection connexion,String table,String login,String oldPasswd,String newPasswd) throws SQLException{
    		boolean existe=membreExiste(connexion,table,login);
                    //methode existe vérifie si le memebre existe dans la db
                     if(existe){
    			Statement requete=connexion.createStatement();
    			ResultSet resultat=requete.executeQuery("SELECT password FROM "+table+" WHERE login='"+login+"'");
     
    			resultat.next();
    			String verifPasswd=resultat.getString("password");
    				//String verifPasswd=oldPasswd;
    			//recoi la valeur true si l'ancien et le nouveau mot de passe sont différent
    			//System.out.println(verifPasswd.equals(oldPasswd));
    			if(oldPasswd.equals(verifPasswd)){
    				requete.executeUpdate("UPDATE membre SET password='"+newPasswd+"' WHERE login='"+login+"'");
    				JOptionPane.showMessageDialog(null,"le mot de passe à été changé pour le membre "+login);
    			}
    			else JOptionPane.showMessageDialog(null,"erreur dans les mot de pass/mot de passe non identique  ");
     
    			resultat.close();
    			requete.close();
    		}else JOptionPane.showMessageDialog(null,login +" n'existe pas dans la db");
    	}

  2. #2
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 095
    Par défaut Reponse :
    J'ai vérifié dans la documentation sun, la méthode equals(Object anObject) de java.lang.String renvoie faut si anObject est nul, ou ne représente pas exactement la même suite de caractère que la chaîne. Il n'y a pas d'autre alternatives.
    Pour vous assurer de comparer la même chose, essayez tout simplement de trimer vos chaînes :
    if (oldPasswd.trim().equals(verifPasswd.trim())) ...
    Sinon, par rapport à votre interrogation sur la méthode getString de l'objet Resultset, cette dernière envoie simplement les caractères contenus dans l'enregistrement consulté. Si l'enregistrement possède une taille de 30 caractères, mais que le mot de passe ne fait que 10 caractères, getString() ne renverra que les 10 caractères du mot de passe. Attention cependant, l'espace est un caractère.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

Discussions similaires

  1. probleme avec l'info bulle des composant swing
    Par jeanfeu dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 19/06/2008, 15h21
  2. Réponses: 3
    Dernier message: 01/06/2006, 19h45
  3. Probleme avec saisie d'infos et affichage avec ONCHANGE
    Par angelevil dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/03/2006, 21h35
  4. [Info] Probleme avec import
    Par Marc_3 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 08/03/2006, 18h59
  5. Réponses: 3
    Dernier message: 24/02/2005, 15h48

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