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

Java Discussion :

java null pointerException


Sujet :

Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations forums :
    Inscription : Juillet 2013
    Messages : 114
    Par défaut java null pointerException
    Bonjour,

    j'ai un petit probleme.
    au fait j'ai deux classes categorie et livre dont chaque livre appartient à un categorie.

    voilà l'erreur qui m'affiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Exception in thread "main" java.lang.NullPointerException
    	at metier.CatalogueMetierImpl.getTousLivres(CatalogueMetierImpl.java:93)
    	at metier.TestMetier.main(TestMetier.java:20)

    les differentes classes:

    class livre:
    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
    package metier;
     
    import java.io.Serializable;
     
    public class Livre implements Serializable {
     
    	private String idLivre;
    	private Categorie cat;
    	private String titre;
    	private String isbn;
    	private String dateEdit;
    	private String nomAut;
     
    	public Livre() {
    		super();
    		// TODO Auto-generated constructor stub
    	}
     
     
    	public Livre(String idLivre, Categorie cat, String titre, String isbn, String dateEdit, String nomAut) {
    		super();
    		this.idLivre = idLivre;
    		this.cat = cat;
    		this.titre = titre;
    		this.isbn = isbn;
    		this.dateEdit = dateEdit;
    		this.nomAut = nomAut;
    	}
     
     
    	public String getIdLivre() {
    		return idLivre;
    	}
    	public void setIdLivre(String idLivre) {
    		this.idLivre = idLivre;
    	}
     
    	public Categorie getCat() {
    		return cat;
    	}
    	public void setCat(Categorie cat) {
    		this.cat = cat;
    	}
    	public String getTitre() {
    		return titre;
    	}
    	public void setTitre(String titre) {
    		this.titre = titre;
    	}
    	public String getIsbn() {
    		return isbn;
    	}
    	public void setIsbn(String isbn) {
    		this.isbn = isbn;
    	}
    	public String getDateEdit() {
    		return dateEdit;
    	}
    	public void setDateEdit(String dateEdit) {
    		this.dateEdit = dateEdit;
    	}
    	public String getNomAut() {
    		return nomAut;
    	}
    	public void setNomAut(String nomAut) {
    		this.nomAut = nomAut;
    	}
     
     
    }
    categorie
    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
    package metier;
     
    import java.io.Serializable;
     
    public class Categorie  implements Serializable{
    	private long reference;
    	private String designation;
     
     
    	public Categorie(long reference, String désignation) {
    		super();
    		this.reference = reference;
    		this.designation = désignation;
    	}
     
     
    	public long getReference() {
    		return reference;
    	}
     
     
    	public void setReference(long reference) {
    		this.reference = reference;
    	}
     
     
    	public String getDesignation() {
    		return designation;
    	}
     
     
    	public void setDesignation(String désignation) {
    		this.designation = désignation;
    	}
     
     
    	public Categorie() {
    		super();
    	}
     
     
    }
    fonction pour afficher tous les livres
    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
    @Override
    	public List<Livre> getTousLivres() {
    		List<Livre> livs=new ArrayList<Livre>();
    		Connection conn=SingletonConnection.getConnection();
    		try {
    			PreparedStatement ps=conn.prepareStatement
    					("select * from livres");
    			ResultSet rs =ps.executeQuery();
    			while(rs.next()){
    				Livre l=new Livre();
    				l.setIdLivre(rs.getString("idlivre"));
    				l.setTitre(rs.getString("titre"));
    				l.setIsbn(rs.getString("isbn"));
    				l.setDateEdit(rs.getString("datedit"));
    				l.setNomAut(rs.getString("nomaut"));
    				l.getCat().setReference(rs.getLong("ref_cat"));
    				livs.add(l);
    			}
    			ps.close();
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return livs;
    	}
    test:main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	//metier.getTousLivres();
    	   System.out.println("--------------------------------------");
    		List<Livre> cat1 =metier.getTousLivres();
    		for(Livre c:cat1){
    			System.out.println(c.getIdLivre());
    		}
    merci
    cordialement

  2. #2
    Membre Expert Avatar de yildiz-online
    Homme Profil pro
    Architecte de domaine
    Inscrit en
    Octobre 2011
    Messages
    1 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de domaine

    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 447
    Par défaut
    metier est instancié quelque part?

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations forums :
    Inscription : Juillet 2013
    Messages : 114
    Par défaut
    Citation Envoyé par yildiz-online Voir le message
    metier est instancié quelque part?
    oui "metier" est extencié juste au deçu seulement que je n'ai pas copier tout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	 ICatalogueMetier metier =  new CatalogueMetierImpl ();

  4. #4
    Membre Expert Avatar de yildiz-online
    Homme Profil pro
    Architecte de domaine
    Inscrit en
    Octobre 2011
    Messages
    1 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de domaine

    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 447
    Par défaut
    Qu'y a-t-il à la ligne 93 de CatalogueMetierImpl?

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations forums :
    Inscription : Juillet 2013
    Messages : 114
    Par défaut
    Citation Envoyé par yildiz-online Voir le message
    Qu'y a-t-il à la ligne 93 de CatalogueMetierImpl?


    oui c'était cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	l.getCat().setReference(rs.getLong("ref_cat"));
    j'explique un peu ce que cette fonction suivante:
    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
    public List<Livre> getTousLivres() {
    		List<Livre> livs=new ArrayList<Livre>();
    		Connection conn=SingletonConnection.getConnection();
    		try {
    			PreparedStatement ps=conn.prepareStatement
    					("select * from livres");
    			ResultSet rs =ps.executeQuery();
    			while(rs.next()){
    				Livre l=new Livre();
    				l.setIdLivre(rs.getString("idlivre"));
    				l.setTitre(rs.getString("titre"));
    				l.setIsbn(rs.getString("isbn"));
    				l.setDateEdit(rs.getString("datedit"));
    				l.setNomAut(rs.getString("nomaut"));
    				l.getCat().setReference(rs.getLong("ref_cat"));
    				livs.add(l);
    			}
    			ps.close();
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return livs;
    	}
    je parcours la table "livre" et je mets toutes les lignes dans la liste "livs"
    mais je n'arrive pas recuperer la colonne ref_cat qui est une clé etrangere.
    c'est là ou point null

    merci

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    l.getCat().setReference(rs.getLong("ref_cat"))
    cat n'a jamais été initialisé lors de l'exécution de cette ligne ( ni de cat=new Categorie(...) ni de l.setCat(quelque chose de non null)), donc cat est null.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Erreur Java null exception pointer dans un tMap
    Par easynoob dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 12/05/2010, 10h42
  2. Réponses: 5
    Dernier message: 10/05/2010, 23h31
  3. tmysqloutput Null PointerException
    Par Elise49 dans le forum Développement de jobs
    Réponses: 17
    Dernier message: 08/05/2009, 22h12
  4. authentification + Null PointerException
    Par pipo7610 dans le forum JSF
    Réponses: 3
    Dernier message: 08/09/2008, 12h26
  5. Properties Null PointerException
    Par Goupo dans le forum Général Java
    Réponses: 21
    Dernier message: 30/04/2008, 13h34

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