Verification login/mot de passe java

Résolu/Fermé
ilhem.s Messages postés 29 Date d'inscription lundi 25 octobre 2010 Statut Membre Dernière intervention 23 février 2014 - 18 avril 2011 à 17:42
tarik45 Messages postés 1 Date d'inscription mercredi 15 août 2012 Statut Membre Dernière intervention 15 août 2012 - 15 août 2012 à 03:56
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

malaik5 Messages postés 258 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 28 novembre 2013 33
19 avril 2011 à 10:56
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
malaik5 Messages postés 258 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 28 novembre 2013 33
19 avril 2011 à 10:56
pour l'eception je ne sais pas pourquoi pour le moment
0
ilhem.s Messages postés 29 Date d'inscription lundi 25 octobre 2010 Statut Membre Dernière intervention 23 février 2014 1
19 avril 2011 à 13:01
cva c b1 fonctionné
Merci vraiment tu m a trop aidé
0