Java.lang.NullPointerException

cs_Dey Messages postés 1 Date d'inscription vendredi 24 janvier 2003 Statut Membre Dernière intervention 24 janvier 2003 - 24 janv. 2003 à 15:15
cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 - 31 janv. 2003 à 09:41
Marseillais :

J débute en java

Voici mon 1 prgm :

import java.sql.*;
import java.io.*;

public class CategorieAgent
{

class CategorieAgent()
{
Statement insererCategorie = con.createStatement();

insererCategorie.executeUpdate(
"INSERT INTO Categorie (CodeCat,Categorie)"
+ "VALUES ('SUBAL','Subalterne')") ;
}


public static void main(String args[])
{
String url = "jdbc:odbc:jpaie2";
//String user = args[0]
//String password = args[1]
//Int level = args[2]
Connection con = null;

try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url,"","");

CategorieAgent = new CategorieAgent()

}

catch(Exception e)
{ System.out.println("Exception"); }

finally {
try {con.close();}
catch(SQLException e)
{e.printStackTrace();}
}
}
}

La bd e MS Access 2000 et la table e vide.

message reçu :

Exception in thread "main" java.lang.NullPointerException at CategorieAgent.main(CategorieAgent.java)

k faire ?

1 réponse

cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
31 janv. 2003 à 09:41
Salut,
ce message et normal car tu déclare ton objet Connection dans ta méthode main.
En java, une variable à de la portée entre les accolades ou elle est déclarée !
Tu ne peux donc pas y accéder dans ta classe interne !

Ce qu'il faut que tu fasses :

import java.sql.*;
import java.io.*;

public class CategorieAgent
{

// Déclaration d'un attribut de la classe
private Connection con;

class CategorieAgent()
{
Statement insererCategorie = con.createStatement();

insererCategorie.executeUpdate(
"INSERT INTO Categorie (CodeCat,Categorie)"
+ "VALUES ('SUBAL','Subalterne')") ;
}

public static void main(String args[])
{
String url = "jdbc:odbc:jpaie2";
//String user = args[0]
//String password = args[1]
//Int level = args[2]

// instanciation
con = null;

try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url,"","");

CategorieAgent = new CategorieAgent()

}

catch(Exception e)
{ System.out.println("Exception"); }

finally {
try {con.close();}
catch(SQLException e)
{e.printStackTrace();}
}
}
}

voilà, la ça devrait marcher !
Duss
0
Rejoignez-nous