Authentification Login/mot de passe avec interface graphique [Fermé]

mano23 - 29 avril 2013 à 20:05 - Dernière réponse : Whismeril 11404 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention
- 4 juin 2014 à 13:31
Salut les gars,

Je suis entrain de faire une interface graphique pour une authentification login/password mais je n'arrive pas à comparer le login et le mot de passe saisis
par l'utilisateur (interface) et ceux enregistrés dans la base de données MySQL.

Voici mes codes:
Classe Authentification
package projetJava;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.JOptionPane;
import javax.swing.JTextField;

class Authentification implements ActionListener {

//Objet pour se connecter à la base de données
public Base b = new Base();
public Connection conn;

static JTextField user, mdp;
    
//Objet PreparedStatement
    PreparedStatement statement = null;
    //Objet ResultSet
    ResultSet resultat = null;

public Authentification() {

}

public void actionPerformed(ActionEvent ae)
{

String login = user.getText();
        String password = mdp.getText();
        
        b.ConnexionBD();
conn = b.getConnect();

//Manipulation
try {
//Création de la requête
statement conn.prepareStatement("SELECT password FROM utilisateurs WHERE login'"+login+"'");

resultat = statement.executeQuery();

if(resultat.next())
{
String motDePasse = resultat.getString(1);
if(motDePasse.equals(password))
{
JOptionPane.showMessageDialog(null,"Connexion réussie ! ","Success",JOptionPane.PLAIN_MESSAGE);
}
else {
JOptionPane.showMessageDialog(null,"Mot de passe incorrect ! ","Error",1);
}
}
else {
JOptionPane.showMessageDialog(null,"Login incorrect ! ","Error",1);
}

//Récupération de la requête dans une variable
resultat = statement.executeQuery();

conn.close();
}
catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}

Classe InterfaceConnexion
package projetJava;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
import javax.swing.border.TitledBorder;

public class InterfaceConnexion extends JFrame {
/**
 * 
 */
private static final long serialVersionUID = 1L;

JPanel panelHaut, panelBas, panelGauche, panelDroite, panelCentre, panelConnexion;

JLabel login = new JLabel("Login");
JLabel password = new JLabel("Mot de passe");
JButton valider = new JButton("Valider");
JButton annuler = new JButton("Annuler");

//static JTextField user, mdp;
    
    public InterfaceConnexion() {

super();

/*Initialisation du JFrame*/
this.setSize (new Dimension (600,400));
//On ne pourra pas agrandir la fenetre intitulée.
this.setResizable (false);

/*Récupération du ContentPane*/
Container contenu = this.getContentPane();

/*Création des JPanel avec leur Layout Manager*/
panelHaut = new JPanel(new GridLayout (1,1));
panelBas = new JPanel(new GridLayout (1,1));
panelGauche = new JPanel(new GridLayout (1,1));
panelDroite = new JPanel(new GridLayout (1,1));
panelCentre = new JPanel(new GridLayout (0,1));
panelConnexion = new JPanel();

/*Ajout des panneaux au ContentPane*/
    contenu.add(panelHaut, BorderLayout.NORTH);
    contenu.add(panelBas, BorderLayout.SOUTH);
    contenu.add(panelGauche, BorderLayout.EAST);
    contenu.add(panelDroite, BorderLayout.WEST);
    contenu.add(panelCentre, BorderLayout.CENTER);

    /*Ajout du formulaire de connexion à panelCentre*/
    panelCentre.setBorder(new TitledBorder("Connexion"));
    panelCentre.add(panelConnexion);
    panelCentre.add(login);
    panelCentre.add(new JTextField());
    panelCentre.add(password);          
    panelCentre.add(new JTextField());
    panelCentre.add(valider);
        valider.addActionListener(new ValiderListener());
    panelCentre.add(annuler);
    
    /*Ajout du texte de panelConnexion*/
    panelConnexion.add(new JLabel ("CONNEXION"));
}

}

class ValiderListener extends JFrame implements ActionListener {

/**
 * 
 */
private static final long serialVersionUID = 1L;

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
try {

ActionEvent a = null;

Authentification au = new Authentification();

au.actionPerformed(a);		
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}

Classe Base
package projetJava;

import java.sql.Connection;
import java.sql.DriverManager;

class Base {

//Variable pour la connexion	
public Connection conn;

public void ConnexionBD()
{
try
{
Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception ex)
{ 
System.out.print("Erreur de Chargement");
System.exit(0);
}
try
{
String url = "jdbc:mysql://localhost:3306/gpp";
String user = "root";
String passwd = "";
conn = DriverManager.getConnection(url, user, passwd);
}
catch(Exception ex)
{
System.out.print("Erreur de connexion à la BD");
}
}

public Connection getConnect()
{
return conn;
}

public void DeconnexionBD()
{
try {
conn.close();
}
catch(Exception ex) {
System.out.print("Déconnexion impossible");
}
}
}

Classe Test
package projetJava;

public class Test {

public Test() {
// TODO Auto-generated constructor stub
}

/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub

InterfaceConnexion  ic = new InterfaceConnexion();
ic.setTitle("Gestion des Paiements d'une pharmacie");
    ic.setVisible(true);
}

}
Afficher la suite 

4 réponses

+9
Utile
J'ai cette erreur au niveau de la méthode actionPerformed de la classe Authentification:
java.lang.NullPointerException
at projetJava.Authentification.actionPerformed(Authentification.java:33)
at projetJava.ValiderListener.actionPerformed(InterfaceConnexion.java:91)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Cette réponse vous a-t-elle aidé ?  
+1
Utile
1
revoit ta requete
"SELECT password FROM utilisateurs WHERE login'"+login+"'"
ajoute un = dans ta comparaison
Whismeril 11404 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 4 juin 2014 à 13:31
Merci, mais depuis un an, il est peut être passé à autre chose...
cs_Julien39 6449 Messages postés mardi 8 mars 2005Date d'inscriptionModérateurStatut 15 mars 2018 Dernière intervention - 30 avril 2013 à 08:07
0
Utile
Salut,

ca a l'air bon, quel est le problème ?

Essayes de ne nous donner que le code utile à la compréhension de ton problème, le reste ne fait que noyer l'information.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.