Problème avec requête sql en java [Résolu]

Signaler
Messages postés
22
Date d'inscription
jeudi 4 décembre 2008
Statut
Membre
Dernière intervention
27 août 2010
-
Messages postés
22
Date d'inscription
jeudi 4 décembre 2008
Statut
Membre
Dernière intervention
27 août 2010
-
Bonjour,


Voilà j'ai crée une table utilisateur dans ma base de données cette table a 2 champs login et mot de passe et j'ai crée une interface authentification qui contient 2 labels un pour le login et l'autre pour le password avec deux jtextfield un jtxtlogin pour le login et un jpwdmdp voilà le bout de code je n'arrive pas à voir où est l'erreur eclipse me souligne mes deux variables jtxtlogin et jpwdmdp




public static authentification getlogin(String login,String password)
{
authentification e1=null;
String req"SELECT * FROM utilisateurs WHERE login '" + jtxtlogin.getText().replaceAll("'", "''") + "' AND password = '" + jpwdmdp.getText().replaceAll("'", "''") + "'" ;
connexion e=new connexion();
e.connect();
if(login.next())
{
JOptionPane.showMessageDialog(null,"Login ou mot de passe déjà utilisés !!!");
}


Statement state;
try {
state = e.conn.createStatement();



ResultSet result = state.executeQuery(req);

ResultSetMetaData resultMeta = result.getMetaData();

while(result.next()){

e1=new authentification(result.getObject(1).toString(), result.getObject(2).toString());



}
} catch (SQLException f) {
// TODO Auto-generated catch block
f.printStackTrace();
}

e.disconnect();

return e1;





Vos idées seront les bienvenues
merci


struggling with life but never give up

9 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
99
Salut,

Tu passe les deux variables en paramètres de ta fonction, alors sers-toi en


Au lieu de faire :
String req"SELECT * FROM utilisateurs WHERE login '" + jtxtlogin.getText().replaceAll("'", "''") + "' AND password = '" + jpwdmdp.getText().replaceAll("'", "''") + "'" ; 

Fais plutôt :
String req"SELECT * FROM utilisateurs WHERE login '" + login.replaceAll("'", "''") + "' AND password = '" + password.replaceAll("'", "''") + "'" ; 

______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
99
Salut,

Parce que tu es dans un contexte static. Tu passe les deux variables en paramètres de ta fonction, alors sers-toi en.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
22
Date d'inscription
jeudi 4 décembre 2008
Statut
Membre
Dernière intervention
27 août 2010

J'ai enlevé le mot static et çà n'a pas marché encore.
j'ai importé la classe authentification qui contient les déclarations des variables et les getters et les setters.
eclipse me signale toujours le même problème



struggling with life but never give up
Messages postés
22
Date d'inscription
jeudi 4 décembre 2008
Statut
Membre
Dernière intervention
27 août 2010

désolée pour cette image encombrante
c'est la première fois que j'insère une image dans un forum.


struggling with life but never give up
Messages postés
22
Date d'inscription
jeudi 4 décembre 2008
Statut
Membre
Dernière intervention
27 août 2010

Merci pour la requête
Voici mon code du bouton valider qui se trouve dans l'interface d'authentification ce bouton doit pouvoir m'afficher un message en disant que l'utilisateur s'est bien authentifé et doit ensuite me ramené à une autre interface.
voici mon bout de code:
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()");
authentification a1=new authentification();
a1=requetes.getlogin(jtxtlogin.getSelectedText().toString(),jpwdmdp.getSelectedText().toString());
if(a1==null)
JOptionPane.showMessageDialog(new JFrame(),"Vous avez entré un login ou un mot de passe incorrects","message d'erreur", JOptionPane.INFORMATION_MESSAGE);

else if (Login.next())
{
if(Login.getString(2).equals("oui"))
{


JOptionPane.showMessageDialog(null,""+jtxtlogin.getText()+" connecté avec succès !!!");
{
main.a=new Interface();
main.a.setVisible(true);


}



Voici les erreurs qu'il me génére:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Login cannot be resolved
Login cannot be resolved

at Authentification.getJbtnvalider(Authentification.java:126)
at Authentification.getJContentPane(Authentification.java:61)
at Authentification.initialize(Authentification.java:42)
at Authentification.(Authentification.java:32)
at main.main(main.java:40)



struggling with life but never give up
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
99
Salut,

C'est quoi cette variable Login qui traîne dans ton code sans déclaration préalable ? Une variable membre de ta classe ? Apparemment non vu le message d'erreur...
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
22
Date d'inscription
jeudi 4 décembre 2008
Statut
Membre
Dernière intervention
27 août 2010

La variable Login je l'ai déclaré dans la classe authentification c'est une variable membre de ma classe et non de mon interface graphique

struggling with life but never give up
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
99
Salut,

Ok, et est-ce que ton listener est déclaré dans une classe inline ou bien ta classe authentification implémente le ActionListener ?
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
22
Date d'inscription
jeudi 4 décembre 2008
Statut
Membre
Dernière intervention
27 août 2010

Merci oui en effet ma classe authentification implémente le ActionListener
Mon problème est réglé, j'arrive à me connecter grâce aux utilisateurs qui sont dans ma table
merci pour tous les conseils

struggling with life but never give up