Probleme d'authentification

ingtechnologie - Modifié par jordane45 le 20/02/2014 à 13:43
DevLama Messages postés 356 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 18 novembre 2021 - 20 févr. 2014 à 17:11
Bonjour, j'ai un probleme avec mon bouton authentification j'ai besouin de votre aide merci beaucoup
 
 private void BntvaliderActionPerformed(java.awt.event.ActionEvent evt) {
     

     PreparedStatement St = null;
            String login = Txtlogin.getText();
           String password = TxtPassword.getText();
           ResultSet Rs = null;
            St=null;
           try{///chaine de conection avec BD Mysql
                 Class.forName("com.mysql.jdbc.Driver");
                 Connection cnx =    DriverManager.getConnection("Jdbc:Odbc:TestBD", "root", ""); 
                          String sql = "SELECT login FROM UTILISATEUR WHERE login= ? AND password = ?";
                      St = (PreparedStatement) cnx.prepareStatement(sql);
                      St.setString(1, login);
                      St.setString(2, password);
                      Rs = St.executeQuery();
                   
                    if   (!Rs.next()) {
                       System.out.println("Echec de la connexion");
   }
    else {
      setVisible(false);// fermer la frame courante auth
     new MenuPrincipale().setVisible(true);// ouvre la frame accueil
   }  
                          }
                        catch (Exception e) {
                            JOptionPane.showMessageDialog(null, "Authentification Echouér" +e.getMessage());
                        }
                       

NB:voicie le Message d'erreur qui m'affiche -:Authentificationsun.jdbc.odbc.JdbcOdbcPreparedStatement cannot be cast to com.mysql.jdbc.PreparedStatement--

3 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
20 févr. 2014 à 13:35
Salut,

Je pense que tu as un problème dans les import, tu utilises quel SGBD ? Peux tu me montrer tes imports ?

Ce catch est je pense inutile
catch (Exception e) { 
JOptionPane.showMessageDialog(null, "Authentification Echouér" +e.getMessage()); 
} 


Et même s'il est utile, remplaces le par
catch (Exception e) { 
e.printStackTrace();
} 



Tout autre commande dans un catch ne ferait que de brouiller les pistes.

Si tu veux ajouter un message à l'utilisateur, tu peux le faire, mais ajoute tout le même le e.printStackTrace() à la fin.
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
Modifié par cs_Julien39 le 20/02/2014 à 13:51
Si tu utilsies mySQL, tu as un problème ici :
DriverManager.getConnection("Jdbc:Odbc:TestBD", "root", "");

il faut remplacer par :
DriverManager.getConnection("jdbc:mysql://localhost/TestBD","root","");


Si tu utilises Oracle, le soucis est ici :
Class.forName("com.mysql.jdbc.Driver")

qui est à remplacer par
Class.forName("oracle.jdbc.driver.OracleDriver");
0
DevLama Messages postés 356 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 18 novembre 2021 10
20 févr. 2014 à 17:11
Regarde ce code:
private void BntvaliderActionPerformed(java.awt.event.ActionEvent evt) {
     

     PreparedStatement St = null;
            String login = Txtlogin.getText();
           String password = TxtPassword.getText();
           ResultSet Rs = null;
            St=null;
           try{///chaine de conection avec BD Mysql
                 Class.forName("com.mysql.jdbc.Driver");
                 Connection cnx =    DriverManager.getConnection("Jdbc:Odbc:TestBD", "root", ""); 
                          String sql = "SELECT login FROM UTILISATEUR WHERE login= '"+login+"' AND password = '"+password+"'";
                      St = (PreparedStatement) cnx.prepareStatement(sql);
                      St.setString(1, login);
                      St.setString(2, password);
                      Rs = St.executeQuery();
                   
                    if   (!Rs.next()) {
                       System.out.println("Echec de la connexion");
   }
    else {
      setVisible(false);// fermer la frame courante auth
     new MenuPrincipale().setVisible(true);// ouvre la frame accueil
   }  

-3
Rejoignez-nous