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

Développement Web en Java Discussion :

Récupérer une valeur selectionnée


Sujet :

Développement Web en Java

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Points : 349
    Points
    349
    Par défaut Récupérer une valeur selectionnée
    Bonjour,
    J'ai un problème au niveau de récupération d'une valeur.Au fait je voulais récupérer la valeur maximale d'un champs.
    Voilà ce que j'ai fait :
    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
    public List<Proces> MAXProces(HttpServletRequest request) throws DAOException {
    		Connection connexionBase = null;
    	       PreparedStatement preparedStatement = null;
    	       ResultSet resultat = null;
    	       List<Proces> plugranPro = new ArrayList<Proces>();
    	       try{
    	    	   connexionBase = daoFactory.getConnection();
    	    	   preparedStatement = connexionBase.prepareStatement("select max(LibelleProces) as Proplugrand from proces;");
    	    	   resultat = preparedStatement.executeQuery();
                       Proces proces = new Proces()
    	    	   while(resultat.next()){
    	    		   plugranPro.add(proces.setNumProces(resultat.getLong("NumProces")));
    	    		   plugranPro.add(proces.setLibelleProces(resultat.getString("LibelleProces")));
    	    		   plugranPro.add(proces.setDateProces(resultat.getDate("DateProces")));
     
    	    	       HttpSession session = request.getSession();
     
    	    		 String nbreMAX = resultat.getString("Proplugrand ");//je récupère la valeur trouvée
     
    	    	       HttpSession session = request.getSession();
    	    		   session.setAttribute("nombreMaximal", nbreMAX );//je place cette valeur en session pour la récupérer dans ma Servlet et en fin l'afficher dans ma JSP.
    	    	   }
    	       }catch(SQLException s){
    	    	   throw new DAOException("Aucun n'enregistrement trouvé.",s);
    	       }finally{
    	    	   fermeturesSilencieuses(resultat,preparedStatement,connexionBase);
    	       }
    		return 	plugranPro;
    	}
    Merci de votre aide.

  2. #2
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Et c'est quoi ton soucis?

    J'en vois plusieurs potentiels, mais j'aimerai bien savoir ce qui coince chez toi.

    Ce que je vois comme erreurs :
    - tu as un ; dans ta requête
    - tu essayes de récupérer des champs qui n'existent pas

    Ce que je vois comme mauvaises pratiques
    - tu place ta valeur dans une variable de session (tu as vraiment besoin de la garder pendant toute la durée de la session?)
    - tu place la valeur dans une variable de session PENDANT que tu es en train de boucler sur le resultat.next() (même si ici on a au mieux 1 résultat)
    - tu récupères un max d'une valeur que j'imagine numérique que tu récupères en tant que chaine de caractères
    - tu lèves une DOAException en disant "aucun enregistrement trouvé" en cas de SQLException. Sauf que ça peut être autre chose, et que le fait de n'avoir aucun enregistrement est une erreur fonctionnelle qui devrait être gérée autrement que par exception
    - tu passes un objet HTTPRequest uniquement pour avoir accès au HTTPSession (pourquoi ne pas passer directement le HTTPSession?)
    - ta méthode s'appelle MAXProces (un nom de méthode ne doit pas commencer par une majuscule)

    Ce que je vois qui n'a pas de sens
    - ta méthode s'appelle MAXProces et elle renvoie une liste (qui ne contiendra rien, CF plus haut)
    - ta méthode renvoie quelque chose ET met un nombre en session plutôt que de faire ce qu'elle doit faire : renvoyer le nombre maximal dans ta table proces
    elle devrait avoir la signature suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public Number getMaxProces(HttpServletRequest request) throws DAOException
    Je ne suis pas mort, j'ai du travail !

  3. #3
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par eulbobo Voir le message
    - tu passes un objet HTTPRequest uniquement pour avoir accès au HTTPSession (pourquoi ne pas passer directement le HTTPSession?)
    ... et pourquoi passer un objet web dans une couche si basse????

    pour moi il est là le WTF: hors contexte web, tu ne peux pas réutiliser le dao (couplage fort, pas de séparation des responsabilités, toussa...)
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  4. #4
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Citation Envoyé par Pill_S Voir le message
    ... et pourquoi passer un objet web dans une couche si basse????

    pour moi il est là le WTF: hors contexte web, tu ne peux pas réutiliser le dao (couplage fort, pas de séparation des responsabilités, toussa...)
    Je suis même pas allé assez loin en considérant que ça pourrait avoir un sens de mettre l'élément en session, mais j'en parle plus bas : la méthode devrait juste renvoyer le max.. Et donc ne pas avoir d'arguments
    Je ne suis pas mort, j'ai du travail !

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Points : 349
    Points
    349
    Par défaut
    Mon soucis c'est de selectionner et afficher dans ma JSP la valeur maximale du champ "LibelleProces" et ce champ est de type "varchar".Si vraiment vous savez comment je dois m'y prendre merci de me guider.

  6. #6
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Je veux bien aider (d'où mes remarques plus haut), mais il faut nous dire là où ça coince chez toi.

    Je pense que tu dois avoir une erreur de type SQLException qui est liée à la présence d'un ; dans ta requête.
    Pour le reste, c'est des conseils généraux de bonne pratique.


    Sinon, si tu veux vraiment la valeur max d'un libellé (donc une chaîne de caractère, donc classé par ordre ascii et pas par ordre numérique), je pense que tu vas avoir un soucis


    Parce que ça va te donner ça comme ordre :
    1
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    2
    20
    21
    Je ne suis pas mort, j'ai du travail !

  7. #7
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Points : 349
    Points
    349
    Par défaut
    Au fait quand j'affiche la variable dans laquelle je récupère la valeur "MAX" je ne vois rien dan ma JSP du coup je comprend que cette variable est "null".En exécutant ma requête dans MYSQL ça marche c'est donc peut être la manière dont récupère la valeur qui n'est pas bonne.Pour ce qui est du nom de la méthode je ne pense pas que c'est un problème puisque j'ai des méthodes qui commencent bien par une lettre majuscule et ça fonctionne correctement.Merci d'avance!!!

  8. #8
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Citation Envoyé par Kasko Voir le message
    Au fait quand j'affiche la variable dans laquelle je récupère la valeur "MAX" je ne vois rien dan ma JSP du coup je comprend que cette variable est "null".En exécutant ma requête dans MYSQL ça marche c'est donc peut être la manière dont récupère la valeur qui n'est pas bonne.Pour ce qui est du nom de la méthode je ne pense pas que c'est un problème puisque j'ai des méthodes qui commencent bien par une lettre majuscule et ça fonctionne correctement.Merci d'avance!!!
    Sans le code de la JSP, je ne peux rien dire... Mais à priori, si tu essayes d'afficher un élément null, ça affiche null, pas rien du tout.

    Et je confirme que la méthode pour récupérer la valeur n'est pas bonne (je ne vais pas répéter toutes les raisons ici, autre que ce qui rentre dans la partie bonne pratiques).

    Pour faire court : enlève le ; dans ta requête !


    Mais ça ne résoudra qu'un seul problème : celui qui fait que ça ne te renvoie rien (parce que tu as une exception que tu dois traiter silencieusement quelque part)
    Je ne suis pas mort, j'ai du travail !

  9. #9
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Points : 349
    Points
    349
    Par défaut
    Merci eulbobo;
    j'ai pu résoudre le problème de récupération maintenant mon soucis c'est de pouvoir récupérer les 2 derniers chiffres de l'année du plus grand procès et prendre aussi les 2 derniers chiffres de l'année en cours.

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

Discussions similaires

  1. Récupérer la valeur selectionné d'une liste
    Par sab_info dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/06/2013, 19h02
  2. Réponses: 0
    Dernier message: 08/05/2012, 18h31
  3. Récupérer une valeur selectionnée
    Par benhsaien dans le forum QlikView
    Réponses: 14
    Dernier message: 27/12/2011, 18h34
  4. Réponses: 7
    Dernier message: 07/01/2008, 17h50
  5. Réponses: 1
    Dernier message: 28/07/2006, 09h17

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