Problème de compilation avc deux classes en agrgation

2tsiris Messages postés 31 Date d'inscription jeudi 6 avril 2006 Statut Membre Dernière intervention 11 juin 2006 - 19 mai 2006 à 18:07
cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 - 20 mai 2006 à 02:17
Bonjour à tous,
étant débutant en java et étant obliger de coder en language orienté objet je test en ce moment une application ou sont mise a contribution deux classes avec un lien les unissant (lien d'agrégation <>----).Ai je bien placé les instanciations ??Pouvez vous me dire ou est l'erreur si vous en voyez une? Merci d'avance 
 le programme me retourne cette erreur :

java.lang.NullPointerException
at clas.fichier.creation_fichier(classe.java:66)
at clas.classe.connection_table(classe.java:21)
at clas.classe.main(classe.java:53)
essai de class
Exception in thread "main"

Voici le code de la classe :

package clas;
import java.sql.*;
import java.io.*;
import javax.swing.UIManager;
public class classe
{
Connection con= null;
ResultSet resultats = null;
String requete=" ";
fichier objetfichier;
classe ()
{
objetfichier=new fichier();
}
void connection_table()
{
fichier objetfichier = new fichier() ;
objetfichier.creation_fichier();
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException e)
{
System.out.println("impossible de lancer le pilote ODBC");
}
try
{
String DBurl="jdbc:odbc:base_julien";
con= DriverManager.getConnection(DBurl);
}catch (SQLException e)
{
System.out.println ("Connection a la base de donnees impossible");
}
requete = "SELECT HumExt FROM avril2006";
try
{
Statement stmt = con.createStatement();
resultats = stmt.executeQuery(requete);
}catch (SQLException e)
{
System.out.println("Anomalie lors de l'execution de la requete");
}
}
public static void main (String argv [])
{
System.out.println("essai de class");
classe objet;
objet = new classe();
//objet.
objet.connection_table();
}
}
/*--------- classe fichier en agrégation ------------*/
class fichier
{
Connection con= null;
ResultSet resultats = null;
String requete=" ";
void creation_fichier()
{
try
{
ResultSetMetaData rsmd = resultats.getMetaData();
int nbCols = rsmd.getColumnCount();
boolean encore = resultats.next();
try
{
FileWriter letters = new FileWriter("classe_mensuelle.txt");
PrintWriter sortie = new PrintWriter (letters);
while (encore)
{
for (int i = 1; i<=nbCols; i++)
{
sortie.println(resultats.getString(i));
}
encore = resultats.next();
}
letters.close();
}
catch (IOException e)
{
System.out.println("erreur --" +e.toString());
}
resultats.close();
}
catch (SQLException e)
{
System.out.println (e.getMessage());
}
}
}

<!-- / message -->

1 réponse

cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 3
20 mai 2006 à 02:17
ResultSet resultats = null; <--------------
String requete=" ";

void creation_fichier()
{
try
{
ResultSetMetaData rsmd = resultats.getMetaData(); <----------

Ton objet resultats est à null c'est pour ça que tu as une java.lang.NullPointerException.
Tu dois instancier un objet ResultSet dans resultat.

Petite critique sur ton code: Utiliser des noms de classe commençant par des majuscules avec des noms significatifs une classe 'classe' c'est pas génial !!!


Bonne chance.

Bouba.
0
Rejoignez-nous