Pb de comparaison de chaine de caractère en JSP

gouverneur5 Messages postés 1 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 21 juillet 2004 - 21 juil. 2004 à 20:05
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 - 22 juil. 2004 à 23:45
Bonjour à tous, voici mon problème:
je récupère une variable issue d'un formulaire au format string et je l'utilise dans la condition d'une requête SQL. La requête SQL renvoie 1 enregistrements dc la valeur du formulaire est égale à la valeur du champ mis en condition dans la requête.
Mais quand je récupère la valeur de ce champ avec la méthode "getString" et que je la compare avec la valeur du formulaire initial, le test d'égalité est faux. Pourtant la requête SQL a fonctionnée.
Je ne vois pas ce qui ne va pas. Merci d'avance à ceux qui m'aideront.

Voici mon code:

// Déclarations
String code_form=request.getParameter("code_ini"); //issues d'un formulaire
String code_query="";

//...
String requete_sql="SELECT * from users where code='" + code_form + "';";
//...

if(resultat_sql.next())
{
code_query=resultat_sql.getString("code");
}

// Affichage pour vérifier que les deux valeurs sont identiques
out.print ("form: " + code_form + "
"); // Affiche-->form: 0
out.print ("query: " + code_query + "
"); //Affiche-->query: 0

//Le test d'égalité est toujours faux même si la requête SQL renvoie 1 enreg
if(code_form==code_query)
{
out.print("ok"); //PB: ne s'affiche jamais
}
else
{
out.print("pb");
}

3 réponses

cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
21 juil. 2004 à 22:31
:big) Neodante :big)

Problème de débutant !!!!
Effectivement on ne compare jamais 2 chaines de caractère avec l'opérateur == mais avec la méthode .equals() ...
L'opérateur == n'est utilisé que pour comparer les types primitifs (int, float, ...) ...
@+

[Responsable www.neogamedev.com]
0
gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
22 juil. 2004 à 08:54
Je rajouterai que == pour un objet compare les références.
De même que la méthode equals() si elle n'est pas redéfinie.
Ce qui est le cas de la classe String
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
22 juil. 2004 à 23:45
:big) Neodante :big)

Effectivement l'opérateur == compare les références (adresse des pointeurs en réalité !) mais quelqu'un attendait derrière moi pour prendre l'ordinateur ... j'ai donc abrégé !!! lololol
Merci à gmi19... (trop compliqué ton nom donc je vais t'appeller fan_de_zelda ! lolol) pour la précision ... comme quoi on est jamais trop de 2 !!!! lol
@+ everybody

PS : vivement que je rentre de vacances histoire d'avoir mon PC à moi rien qu'à moi !!! lol

[Responsable www.neogamedev.com]
0
Rejoignez-nous