Bonjour,
j'ai fait une JFrame afin que l'utilisateur puisse rentré son login et son mot de passe qui sont stocké dans ma base de donnée postgresql. Le probleme est que je n'arrive pas à récupérer et vérifier les données entré par l'utilisateur avec ma base de donnée. Est ce que quelqu'un pourrait m'aider.
Merci d'avance.
Voici mon code.
public void connect(){
try
{
Class.forName("org.postgresql.Driver");
}
catch (ClassNotFoundException e)
{
System.out.println("erreur pendant le chagement du pilote");
}
Connection conn=null;
try
{
conn = DriverManager.getConnection("jdbc:postgresql:conges", "toto","****");
}
catch (SQLException e)
{
erreur=new JFrame();
erreur.setTitle("Erreur");
erreur.setBounds(10,10,300,150);
alerte = new JLabel("erreur pendant la connexion à la base!");
JPanel pano;
pano=new JPanel();
pano.add(alerte);
erreur.getContentPane().add(pano);
erreur.setVisible(true);
}
try
{
String nom = jTextField1.getText();
String mdp = jPasswordField1.getPassword().toString();
conn = DriverManager.getConnection("jdbc:postgresql:conges", "toto","****");
//Création d'un objet Statement
Statement state = (Statement) conn.createStatement();
//Definition du conteneur de résultat
ResultSet result= null;
ResultSet result2=null;
//L'objet ResultSet contient le résultat de la requête SQL
result = state.executeQuery("SELECT nom FROM salarie where"+"nom=\""+nom+"\";");
result2 = state.executeQuery("SELECT mdp FROM salarie where"+"nom=\""+nom+"\";");
//On récupère les MetaData
ResultSetMetaData resultMeta = result.getMetaData();
if(nom.compareTo(result.toString())==1)
{
if(mdp.compareTo(result2.toString())==1)
{
}
}
else{
erreur=new JFrame();
erreur.setTitle("Erreur");
erreur.setBounds(10,10,300,150);
alerte = new JLabel("Nom d'utilisateur et/ou mot de passe invalide");
JPanel pano;
pano=new JPanel();
pano.add(alerte);
erreur.getContentPane().add(pano);
erreur.setVisible(true);
}
result.close();
state.close();
}
catch(Exception e)
{
erreur=new JFrame();
erreur.setTitle("Erreur");
erreur.setBounds(10,10,300,150);
alerte = new JLabel("erreur de connexion!");
JPanel pano;
pano=new JPanel();
pano.add(alerte);
erreur.getContentPane().add(pano);
erreur.setVisible(true);
}
}
Normalement un executeQuery renvoi un ResultSet et non pas un string.
Ensuite pourquoi faire deux requêtes SQL ? surtout celle la : SELECT nom FROM salarie where nom="x" (qui devrait renvoyer forcement x ou rien...)
Ensuite utilise le PreparedStatement qui sont quand même plus pratique pour évité les injection SQL.
JFrame de connexion probleme pour récuperer login et mdp
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.