Exception

abdelouahidoualali -  
KX Messages postés 19031 Statut Modérateur -
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. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
  2. abdelouahidoualali
     
    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. KX Messages postés 19031 Statut Modérateur 3 020
       
      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