Java.lang.NullPointerException

Salut tout le monde!
j'ai une erreur qui s'affiche quand je fais une requete pour inserer des trucs dans ma base de données "java.lang.NullPointerException" sur la ligne
c.requete.executeUpdate("INSERT INTO ETUDIANT VALUES("+cin+",'"+nom+"','"+prenom+"','"+nums+"')");
sachant que la classe connexion bloque sur " Class.forName("oracle.jdbc.driver.OracleDriver");"
je ne comprend pas d'ou vient l'erreur y a t-il quelqu'un qui pourra m'aider svp

12 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Modifies comme ceci :

    if (c==null)
        System.err.println("c==null");
    else if (c.requete==null)
        System.err.println("requete==null");
    else
        c.requete.executeUpdate("INSERT INTO ETUDIANT VALUES('"+ cin+"','"+nom+"','"+prenom+"','"+nums+"')");
    1. c'est ce que donne l'éxecution , qu'est ce que je doit faire?
      1. requete est crée dans la classe connexion
        requete = connect.createStatement();
        1. moi aussi g le même probleme , g essayé et j'ai obteni requete ==null :/ que faire svp
          1. Modérateur
            On ne sait pas ce qu'est "c" mais de toute évidence le champ "c.requete" vaut null, c'est à dire que soit le "requete = connect.createStatement()" n'a pas fonctionné, soit il n'a pas du tout été fait !
            1. et pourquoi ça ne marche pas d'aprés vous? peut etre qu'il manque une bibliothéque ou un truc de ce genre?
              1. Modérateur
                Ou peut être que tu as tout simplement oublié d'initaliser c.requete !
                1. au fait les statement n'ont pas été crée car le code bloque sur cette ligne
                  " Class.forName("oracle.jdbc.driver.OracleDriver");"
                  1. Essaie cette solution:
                    import java.sql.Connection;
                    import java.sql.DriverManager;
                    import java.sql.PreparedStatement;
                    import java.sql.ResultSet;

                    et dans ta fonction evenement tu met:
                    ResultSet rs =null;
                    PreparedStatement pst =null;

                    try
                    {
                    Connection connection;
                    Class.forName("com.mysql.jdbc.Driver");
                    connection=DriverManager.getConnection("jdbc:mysql://localhost/ta base de donnée","root","mot de passe");
                    sql=" ta requétte";
                    pst=connection.prepareStatement(sql);
                    rs=pst.executeQuery();
                    System.out.println(" connéctée");
                    }catch(Exeception e){......}

                    Qui sait, sa peut marcher pour toi.
                    1. non ça marche pas merci pour votre réponse et au fait j'utilise oracle mais j'ai essayé quand meme et ça n'a pas marché..:/