Verification login/mot de passe java [Résolu/Fermé]

Signaler
Messages postés
29
Date d'inscription
lundi 25 octobre 2010
Statut
Membre
Dernière intervention
23 février 2014
-
tarik45
Messages postés
1
Date d'inscription
mercredi 15 août 2012
Statut
Membre
Dernière intervention
15 août 2012
-
Bonjour,
j'essaye d'etablire une page d'authentification mais une exception qui se produise lors de l'execution la voici :

java.sql.SQLException: Operation not allowed after ResultSet closed

Voici de même une partie de code relative au boutton de connexion

try{

Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(url,log ,password);
Statement S=con.createStatement();




ResultSet resultaltLogin=S.executeQuery("Select login from user;");
while(resultaltLogin.next())
{
String LoginRecup=resultaltLogin.getString("login");
if (login.equals(LoginRecup))
{

ResultSet res=S.executeQuery("Select mot_de_passe from user where login='LoginRecup';");
while(res.next())
{
String MPRecup=res.getString("mot_de_passe");
if(MPRecup.equals(MP))
{
verif=true;
Accueil A=new Accueil();
A.show(true);
dispose();
}
}
}
}
if(!verif)
{
JOptionPane.showMessageDialog(null, "Verifier Login / Mot de passe", "Message d'erreur:", JOptionPane.ERROR_MESSAGE);
T1.setText("");
PF.setText("");
}
con.close();

} catch(Exception a){System.out.println(a);}

5 réponses

Messages postés
259
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
28 novembre 2013
27
bonjour,
juste une ptite remarque,
point de vue optimisation tu peux eviter de lancer deux fois la requete (la 1ere pour recuperer le login et la 2eme pour recuperer le pass) parce que tu fais deux fois la connexion à ta base et tu execute deux fois une requete, donc ça peut ralentir ton execution surtout si tu remarque les 2 requetes pointent sur la meme table !! (ça c juste des recommandations ça n'empeche pas que ton code reste juste), et pour le faire tu fais un select * from user apres tu comprae les couples user, pass pour les comprarer à ce que le user tappe.

ResultSet resultaltLogin=S.executeQuery("Select * from user;");
while(resultaltLogin.next())
{
String LoginRecup=resultaltLogin.getString("login");
String MPRecup=resultaltLogin.getString("mot_de_passe ");
if (login.equals(LoginRecup) && MPRecup.equals(MP))
{
...... // ton traitement ici
}

essayes de corriger comme ça deja peut etre ça donnera un truc
6
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 87645 internautes nous ont dit merci ce mois-ci

malaik5
Messages postés
259
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
28 novembre 2013
27
pour l'eception je ne sais pas pourquoi pour le moment
ilhem.s
Messages postés
29
Date d'inscription
lundi 25 octobre 2010
Statut
Membre
Dernière intervention
23 février 2014
1
cva c b1 fonctionné
Merci vraiment tu m a trop aidé
Salut frere
bon javais le meme probleme.......alors j'ai pris votre code, et j'ai essaié d'y travaillé un peu...........et, merci dieu, j'ai réussi.

voilà la solution, à vous, et à toutes autres personnes désirant l'utiliser :)


Class.forName("com.mysql.jdbc.Driver");
Connection c = DriverManager.getConnection("jdbc:mysql://127.0.0.1/ma_base", "root", "");
Statement s = c.createStatement();
ResultSet r = s.executeQuery("select * from authentification");
while (r.next()) {
String LoginRecup = r.getString("Login");
String log = jTextField1.getText();
char[] pssw = jPasswordField1.getPassword();
String pw = new String(pssw);
String MPRecup = r.getString("Password");
if (LoginRecup.equals(log)& MPRecup.equals(pw) ) {

verif = true;
principale N = new principale();
N.setVisible(true);
this.dispose();


}
}
if (!verif) {
JOptionPane.showMessageDialog(null, "Verifier Login / Mot de passe", "Message d'erreur:", JOptionPane.ERROR_MESSAGE);
jTextField1.setText("");
jPasswordField1.setText("");
}
c.close();
} catch (Exception a) {
System.out.println(a);
}





Bon en générale j'ai récupérer les valeur des 2 champs de ma base de données, et j'ai fait la vérification des 2 champs en meme temps

j'espere que c claire pour vous :)
Bonsoir a tous,moi je débute en programmation en java sur eclipse,je veux créer un nouveau projet pour me permettre la création d'un user(utilisateur) qui a un nom et un prenom ,un login et mot de passe et que le mot de passe soit initialement égal au login saisi,Mercci bcp d'avance pour votre aide! :)
malaik5
Messages postés
259
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
28 novembre 2013
27
Bonjour,

Ton user c'est quoi ?? c'est des users différents ou un user unique .... ? je ne comprends pas le besoin (peux-tu STP éclaircir plus ton cas)

Merci
Messages postés
222
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
2 mars 2016
5
pourquoi js et pas php ?
ilhem.s
Messages postés
29
Date d'inscription
lundi 25 octobre 2010
Statut
Membre
Dernière intervention
23 février 2014
1
chui entrain de préparer mon projet de fin d'etude et je préfére travailler avec java
Messages postés
1
Date d'inscription
vendredi 10 août 2012
Statut
Membre
Dernière intervention
10 août 2012

salut..s'il vous plait vous pouvez me donner les corps du fonctions (verif) et ( principale) et merci d'avance
tarik45
Messages postés
1
Date d'inscription
mercredi 15 août 2012
Statut
Membre
Dernière intervention
15 août 2012

-tu peut annuler l'option verif
-tu dois creer un JFrame qui s'appelle principale