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:
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");
} |