IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

NullPointerException lors de l'identification


Sujet :

avec Java

  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 1
    Par défaut NullPointerException lors de l'identification
    Bonjour tout le monde. je suis nouveau avec java, j'ai une application à realiser avec jsf et une base de donné postgresql.

    Maintenant je suis entrain de réaliser une identification. J'arrive à faire la connexion à la base de données et récupérer les information de la table "user". Mon problème c'est lorsque je fais le test pour comparer les valeurs des champs de formulaire avec celle de la base de données, il ne prend pas en considération que le dernier username et mot de passe.

    L'exécution de ce code m'affiche le premier username et password de la table "user" et après :
    Exception in thread "main" java.lang.NullPointerException
    at connect.check(connect.java:62)
    at connect.main(connect.java:84)
    Java Result: 1
    voici mon class connect.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.SessionScoped;
     
    @ManagedBean 
    @SessionScoped
    public class connect {
     
         private  String pass;
         private  String user;
         private  String message;
     
        public String getPass() {
            return pass;
        }
     
        public void setPass(String pass) {
            this.pass = pass;
        }
     
        public String getUser() {
            return user;
        }
     
        public void setUser(String user) {
            this.user = user;
        }
     
        public String getMessage() {
            return message;
        }
     
        public void setMessage(String message) {
            this.message = message;
        }      
        public String check()
         {
     
        Connection con = null;
     
           try {
     
             con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/login", "postgres", "1234");
     
             System.out.println("Opened database successfully");
     
         String sql = "SELECT * FROM users";    
     PreparedStatement prest = con.prepareStatement(sql);
    ResultSet rs = prest.executeQuery();
     
                   while ( rs.next() ) {
     
                   System.out.println("UserName="+rs.getString("username")+",Password="+rs.getString("password"));
     
     
                        String  username = rs.getString("username");
                       String password  = rs.getString("password");
                       if(user.equals(username) &&(pass.equals(password))){
     
                          message="admin";   }
                      else message="error";
                      }
     
             prest.close();
             con.close();
           } catch ( SQLException e ) {
             System.err.println( e.getClass().getName()+": "+ e.getMessage() );
     
           }
           System.out.println("Operation done successfully");
           return message;
         }
     
     
        public connect() {
        }
     
        public static void main( String args[] ){
        connect c= new connect();
        c.check();
        }
     
     
    }
    S'il vousplait, quelqu'un parmis vous peut me corriger ce code ? Merci d'avance.

  2. #2
    Membre éclairé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Par défaut
    Bonsoir,
    Je ne suis pas un expert mais il me semble que vos variables "user" et "pass" sont null.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public static void main( String args[] ){
        connect c= new connect();
    c.setUser = un_user;
    c.setPass = un_mdp;
        c.check();
        }

  3. #3
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    bonjour,
    Le réponse de hugoclo est exact, en effet user est null, d'ou le nullpointer.

    Mais cette classe pose au moins un autre problème !
    Ta classe "connect" est un bean managé ce qui signifie qu'il est normalement instancié par un conteneur (conteneur web ou serveur d'application), or dans ce cas la tu ne devrais pas avoir de connexion dans ta classe.
    Au sein des serveurs d'application on utilise un framework de persistance. Si tu ne l'a pas compris je fais allusion a JPA, et si tu ne vois pas ce que c'est il est grand temps de regarder.
    un tutorial jsf / jpa
    un wiki sur JPA, mais qui va plus en détail (en anglais)
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. NullPointerException lors d'un resultset.next()
    Par theophanie dans le forum JDBC
    Réponses: 10
    Dernier message: 10/08/2010, 13h20
  2. NullPointerException lors du persist
    Par Baptiste Wicht dans le forum JPA
    Réponses: 4
    Dernier message: 13/05/2008, 14h57
  3. Réponses: 0
    Dernier message: 26/12/2007, 17h28
  4. [EJB3 Entity] NullPointerException lors d'appel persist
    Par tiamat dans le forum Java EE
    Réponses: 21
    Dernier message: 17/10/2007, 14h37
  5. Réponses: 4
    Dernier message: 21/09/2006, 11h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo