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

avec Java Discussion :

getetatfact() ne me renvoie la valeur null


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Par défaut getetatfact() ne me renvoie la valeur null
    Bonjour,
    j'ai ecrit ce code java
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    package com.iris;
     
    import javax.jws.WebMethod;
    import javax.jws.WebParam;
    import javax.jws.WebService;
    import java.sql.*;
    import java.lang.*;
     
    /**
     *
     * @author hedi
     */
    @WebService()
    public class NewWebService {
        private String etatfact;
        /**
         * Web service operation
         */
        public void setetatfact(String v){
      this.etatfact=v;
    }
        public String getetatfact(){
       return this.etatfact;
    }
        @WebMethod(operationName = "cosult_imp")
        public String cosult_imp(@WebParam(name = "idfacture")
        int idfacture, @WebParam(name = "reference")
        int reference)
     
     
        {
                try
     
     
            {
    Class.forName("org.postgresql.Driver");
     
    Connection connexion = DriverManager.getConnection("jdbc:postgresql://<127.0.0.1>:<5432>/<bddemosonede2>", "postgres", "admin");
     java.sql.Statement instruction=connexion.createStatement() ;
           ResultSet retour= instruction.executeQuery("select etat from facture where idfac=idfacture and reference=reference" );
     
    //Envoyer une requete Deux Methode
    //Requete sans retour de donnée (INSERT, CREATE....)
    //boolean retour= instruction.execute("requete sql");
    //Requete avec retour de donnée (SELECT)
     
    setetatfact(retour.getString("etat"));
    connexion.close();
            }
            catch
                     (Exception sql_erreur) {
    //Gestion de l'exception d'erreur de connection à la base ou erreur de requete sql
                System.err.print("Erreur SQL ") ;
    }
                //TODO write your implementation code here:
                return getetatfact();
    }
     
        }
    le probleme est que quelque soit la valeur que je met dans setetatfact() le getteur getetatfact() ne me renvoie la valeur null j'ai compris que c'est un probleme de portée de la variable mais je ne sais pas comment le resoudre ou peut etre que ce n'est pas ce probleme.
    merci

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 4
    Par défaut
    Hello,

    Bah....crée une variable de type String pour afficher (en log ou peu importe) la valeur de retour.getString("etat")

    Note: il faudrait aussi que tu ferme ton statement. Normalement ca se fait automatiquement en fermant la connexion, mais on n'est jamais trop prudent.
    En pratique on ferme le statement puis la connexion.

  3. #3
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Par défaut
    le probléme que si je déclare un variable string le resultat que je lui affecte dans la boucle try n'est pas prise en compte et me retourne toujours la valeur null comme si je n'est pas affecter de valeur a la variable

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Par défaut
    Citation Envoyé par edyyy Voir le message
    le probléme que si je déclare un variable string le resultat que je lui affecte dans la boucle try n'est pas prise en compte et me retourne toujours la valeur null comme si je n'est pas affecter de valeur a la variable
    Tu veux dire que tu as remplacé la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setetatfact(retour.getString("etat"));
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setetatfact("blablabla");
    et que ta méthode cosult_imp te retourne toujours null ?

    N'y aurait-il pas un message "Erreur SQL" dans ta sortie d'erreur ?
    Si une exception est levée avant l'instruction setetatfact celle-ci ne sera pas exécutée et donc getetatfact renverra logiquement null (valeur initiale du champ etatfact lors de l'instanciation d'un objet de type NewWebService).

  5. #5
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Bonjour,
    Il manque une ligne dans ton code pour que la requête marche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ResultSet retour= instruction.executeQuery("select etat from facture where idfac=idfacture and reference=reference" );
     
    //Envoyer une requete Deux Methode
    //Requete sans retour de donnée (INSERT, CREATE....)
    //boolean retour= instruction.execute("requete sql");
    //Requete avec retour de donnée (SELECT)
     
    retour.next();//Permet de se placer sur le premier élément!
    setetatfact(retour.getString("etat"));
    connexion.close();
    A noter que retour.next() renvoie un booleen te disant si il y a un résultat, et que ce booleen doit aussi être testé si tu veux faire un code propre.

  6. #6
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Par défaut
    c'est vrais Astartee que si je met dans setetatfact(BLALALALA) elle me retourne la valeur null et il n'ya pas d'erreur SQL et aussi
    le probleme Astartee est que méme si je met par exemple une variable globale quelconque et que je lui affecte une valeur de type string dans la boucle try puis je la met dans return elle me renvoie un resultat nulle merci beaucoup de votre aide

  7. #7
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Par défaut
    Merci a tous de m'avoir aidée j'ai résolu le probleme c'etait la faute a une erreur Sql qui planté le proghramme avant méme que la variable soit instanciée merci bcp de votre aide

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 15/06/2015, 10h34
  2. isset renvoie vrai sur valeur null
    Par Moonliz dans le forum Langage
    Réponses: 6
    Dernier message: 17/11/2011, 15h12
  3. jointure externe et renvoi de valeurs NULL
    Par ctobini dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 21/09/2006, 10h57
  4. Valeurs Nulles ou Valeurs à Zéro
    Par LLaurent dans le forum XMLRAD
    Réponses: 5
    Dernier message: 30/07/2003, 11h40

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