Exception

Bonjour
j'ai une erreur de ce type pouvez vous m'aider
Exception in thread "main" java.lang.NullPointerException
at brochure.jeuEnregistrement.JeuEnregistrement(jeuEnregistrement.java:23)
at brochure.Brochure.main(Brochure.java:38)

en faite il s'agit d'une classe qui me permet de faire des traitment sur les requete sql
d'ailleurs je bûche aussi sur les autre méthode.

Merci pour votre aide

package brochure;


import java.sql.*;
public class jeuEnregistrement {
    
    private ResulSet result;
    
    public  void JeuEnregistrement(String chaine) throws Exception{
      Bdd conn = new Bdd();
      

      //Création d'un objet Statement
      Statement state;
      state = conn.getConnection().createStatement();
      //L'objet ResultSet contient le résultat de la requête SQL
      this.result = state.executeQuery(chaine);
      //On récupère les MetaData
      ResultSetMetaData resultMeta = this.result.getMetaData();
         
      
      //On affiche le nom des colonnes
      for(int i = 1; i <= resultMeta.getColumnCount(); i++)
        System.out.print(resultMeta.getColumnName(i).toUpperCase());
         
   
         
      while(this.result.next()){         
        for(int i = 1; i <= resultMeta.getColumnCount(); i++)
          System.out.print(result.getObject(i).toString());
            
      
      }

    
      state.close();
     
      
    }
   public void  suivant() throws SQLException{

    // Avance le curseur sur l’enregistrement suivant.
    
    //this.result.next();
    
   
   }
    
   public boolean fin() {
   
    // Indique si la marque de fin est atteinte.

    return false;
   }
   
    public Object getValeur(String nomChamp ){
   // Renvoie la valeur du champ nomChamp de l’enregistrement courant. Variant est un type
   // générique pouvant contenir tout type de valeur. On peut utiliser l’opérateur "+" pour
   // concaténer des valeurs ou variables de type Chaîne ou Variant.
   return null;
    }
 
 public void  fermer(){
// Ferme le curseur et libère les ressources
 }

    public ResultSet getResult() {
        return result;
    }

    public void setResult(ResultSet result) {
        this.result = result;
    }
    
    
    
}


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

  1. Modérateur
    Bonjour,

    Sur quelle ligne de code correspond la ligne 23 de ton erreur ?

    PS. Ce code ne compile pas (à cause du
    private ResulSet result;
    ), avant de soumettre une erreur d'exécution, vérifie que tu n'as pas d'erreur de compilation...
    0
    1. Bonjour,
      Merci pour ta réponse Voici mon code pour la classe jeuEnregistrement.
      voici a quoi correspond la ligne 23 : state = conn.getConnection().createStatement();


      package brochure;

      import java.sql.*;
      public class jeuEnregistrement {

      public void JeuEnregistrement(String chaine) throws Exception{
      Bdd conn = new Bdd();

      ResultSet result ;
      //Création d'un objet Statement
      Statement state;
      state = conn.getConnection().createStatement();
      //L'objet ResultSet contient le résultat de la requête SQL
      result = state.executeQuery(chaine);
      //On récupère les MetaData
      ResultSetMetaData resultMeta = result.getMetaData();

      //On affiche le nom des colonnes
      for(int i = 1; i <= resultMeta.getColumnCount(); i++)
      System.out.print(resultMeta.getColumnName(i).toUpperCase());

      while(result.next()){
      for(int i = 1; i <= resultMeta.getColumnCount(); i++)
      System.out.print(result.getObject(i).toString());

      }

      state.close();

      }
      public void suivant() throws SQLException{

      // Avance le curseur sur l’enregistrement suivant.

      //this.result.next();

      }

      public boolean fin() {

      // Indique si la marque de fin est atteinte.

      return false;
      }

      public Object getValeur(String nomChamp ){
      // Renvoie la valeur du champ nomChamp de l’enregistrement courant. Variant est un type
      // générique pouvant contenir tout type de valeur. On peut utiliser l’opérateur "+" pour
      // concaténer des valeurs ou variables de type Chaîne ou Variant.
      return null;
      }

      public void fermer(){
      // Ferme le curseur et libère les ressources
      }

      public ResultSet getResult() {
      return result;
      }

      public void setResult(ResultSet result) {
      this.result = result;
      }

      }

      0
      1. Modérateur
        Le NullPointerException vient donc du fait que conn.getConnection() a renvoyé la valeur null.
        Tu ne peux pas faire null.createStatement();

        Il faut regarder ta classe Bdd et la méthode getConnection, parce qu'elle ne renvoie aucune connexion...
        0