IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Problème de d'éxécution d'une requete sql en java


Sujet :

JDBC Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 33
    Points : 29
    Points
    29
    Par défaut Problème de d'éxécution d'une requete sql en java
    Bonjour à tous,

    j'ai un petit souci ce matin avec une requete SQL en java.En fait, j'ai le bout de code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    public static int  f_save_incidentMission(int id,int mission,java.lang.String nom, java.lang.String description, java.sql.Date dateincident, float cout,int nbjour)
       throws SQLException
       { 
           int out=0;
           con = DriverManager.getConnection(ad.geturl(),ad.getidt(),ad.getmdp());
          if(id <= 0)
           {                  
               if((nom == null) || (nom.isEmpty() == true))
                      throw new SQLException(ad.getexception(37));
               if((description == null) || (description.isEmpty() == true))
                      throw new SQLException(ad.getexception(38));
               if((dateincident == null))
                      throw new SQLException(ad.getexception(39));
               st = con.prepareStatement("INSERT INTO incidentmission (mission, nom, description, dateincident,cout,nbjour) VALUES(?, ?, ?, ?, ?, ?);");
               st.setInt(1, mission);          
               st.setString(2, nom);
               st.setString(3, description);
               st.setDate(4, dateincident);
               st.setFloat(5, cout);
               st.setInt(6, nbjour);
               out= st.executeUpdate();
           }else
           {                  
               if((nom == null) || (nom.isEmpty() == true))
                      throw new SQLException(ad.getexception(37));
               if((description == null) || (description.isEmpty() == true))
                      throw new SQLException(ad.getexception(38));
               if((dateincident == null))
               st = con.prepareStatement("UPDATE incidentmission SET mission= ?, nom= ?, description= ?,dateincident= ?, cout= ?, nbjour=? WHERE id= ?");
               st.setInt(1, mission);          
               st.setString(2, nom);
               st.setString(3, description);
               st.setDate(4, dateincident);
               st.setFloat(5, cout);
               st.setInt(6, nbjour);
               st.setInt(7, id); 
               out= st.executeUpdate();          
           }
           return  out;
        }
    Dans le cas ou la fonction s’exécute normalement, ma fonction est sensé me renvoyée 1 et 0 dans le cas contraire. quand le prémier paramètre est positif, il s'agit d'une mise à jour (update), quand c'est inférieur ou égale à zero, il s'agit d'une insertion (INSERT).

    Le problème qui se pose est le suivant:

    quand j'appels ma fonction avec le premier paramètre négatif ou zéro, tout se passe bien(la fonction renvoie 1 comme prévue et fait une insertion). Mais quand j'appels la fonction avec un paramètre positif, j'obtiens l’erreur suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ERREUR:  java.lang.NullPointerException
     
    ********** Erreur **********
     
    ERREUR: java.lang.NullPointerException
    État SQL :XX000
    et la mise à jour ne s’effectue pas.

    Merci de voir avec moi ce qui ne va pas .

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    Il faudrait surtout savoir a quelle ligne se produit l'erreur. Soit avec le stacktrace complet, soit au debuggeur (en pas à pas).
    En tout cas il s'agit d'un problème de nullpointer qui est utilisé ou passé en paramètre quelque part.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti Avatar de toutgrego
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2013
    Messages : 217
    Points : 350
    Points
    350
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if((dateincident == null))
               st = con.prepareStatement("UPDATE incidentmission SET mission= ?, nom= ?, description= ?,dateincident= ?, cout= ?, nbjour=? WHERE id= ?");
    Il manque quelque chose là, si ton 'dateincident' n'est pas null, st ne sera pas instancié (pas d'accollade) mais le reste sera exécuté et tu obtiendra un NPE.

    Je pense que tu as oublié la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    throw new SQLException(ad.getexception(39));
    Tchao =)
    F*ck it ! Do it !

  4. #4
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 33
    Points : 29
    Points
    29
    Par défaut
    Merci toutgrego !!!!!!!!!!
    c'est claire et net.Tout va bien pour le moment en ajoutant cette ligne de code manquante.

    une fois de plus merci pour ta disponibilité à nous aider.
    que Dieu te bénisse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probléme dans l'excécution d'une requete sql
    Par saraenim dans le forum Windows Forms
    Réponses: 1
    Dernier message: 17/10/2008, 14h55
  2. Réponses: 2
    Dernier message: 27/05/2007, 13h26
  3. Probléme avec une varialbe dans une requete SQL
    Par wylls dans le forum Langage SQL
    Réponses: 25
    Dernier message: 18/12/2006, 15h45
  4. Problème création d'une requete SQL (categorie,sous-cat)
    Par Raideman dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/11/2006, 15h23
  5. Problème avec une requete SQL sous access
    Par Luther13 dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 14/12/2005, 10h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo