Exception

Fermé
abdelouahidoualali - Modifié le 30 mars 2019 à 15:34
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 3 avril 2019 à 07:38
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

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
2 avril 2019 à 16:01
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
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
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
3 avril 2019 à 07:38
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