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 toutes les valeurs d'un Resultset


Sujet :

Développement Web en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    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
    Par défaut Récupérer toutes les valeurs d'un Resultset
    Bonjour à tous,
    Je voudrais récupérer tout les identifiants d'une table mais je n'y arrive pas.Voila comment j'ai procédé mais ça me renvois l'identifiant du dernier enregistrement seulement alors que je veux pour tous les enregistrements.

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while(resultat.next()){
     Long[] aaa = {resultat.getLong("NumCompte")};
    			}
    voici comment j'affiche dans la JSP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <c:out value = "${aaa[0]}"/>
    J'ai utilisé les List et les Map ça ne change rien.
    Si quelqu'un a une méthode merci de m'aider.

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

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Si ton code est exactement celui que tu as donné, tu devrais avoir "null" en retour.

    Sinon, pour tous les avoir au lieu de juste le dernier enregistrement, il faudrait les ajouter à une liste.
    Dans ton code, tu écrases la dernière valeur systématiquement pour la stocker dans un tableau de Long

    Utilise une ArrayList et fais des add dans ta boucle !

  3. #3
    Membre expérimenté
    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
    Par défaut
    C'est exactement ce que j'ai fait en premier lieu ça n'a pas marché.
    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    List<Client> LesClients = new ArrayList<Client>();
    while(resultat.next()){
    LesClients.add(resultat.getLong("NumCompte"));
    }
    ça me renvois 67 seulement au lieu de 63 ,64, 65 ,66 ,et 67

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    C'est exactement ce que j'ai fait en premier lieu ça n'a pas marché
    Dans ce cas, je soupçonne autre chose (pb de requête SQL ou de position de curseur)
    Tu peux poster le code complet avec la requête sql pour qu'on voit bien les étapes ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    ce code que tu montre ne "renvoie" rien, il se content de remplir une liste. Poste le reste du code qui va avec sinon on est pas près de comprendre comment tu l'utilise.

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

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Citation Envoyé par Kasko Voir le message
    C'est exactement ce que j'ai fait en premier lieu ça n'a pas marché.
    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    List<Client> LesClients = new ArrayList<Client>();
    while(resultat.next()){
    LesClients.add(resultat.getLong("NumCompte"));
    }
    ça me renvois 67 seulement au lieu de 63 ,64, 65 ,66 ,et 67
    Ce code ne peut pas marcher vu que tu as une ArrayList de Client et que tu essayes d'y stocker des Long.
    Tu dois donc avoir une erreur de compilation (sauf si Client extends Long, mais c'est impossible vu que Long est une classe final)


    Et comme disent les autres, à voir comment tu essayes d'afficher le résultat parce que ça peut aussi être là bas le problème

    Si dans ta JSP tu as uniquement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <c:out value = "${aaa[0]}"/>
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <c:out value = "${LesClients[0]}"/>
    c'est normal de ne voir afficher qu'un seul élément... C'est ce que tu demandes après tout (mais c'est le premier qui doit s'afficher, pas le dernier)

  7. #7
    Membre expérimenté
    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
    Par défaut
    Voici le code complet :

    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
     
    public List<Client> ListeClient(HttpServletRequest request) throws DAOException {
     
    		/*creation des objets de la connexion,des requête,du retour 
    		des resultat d'une requête et d'une liste qui stockera les resultats de la requête*/
     
    		Connection connexionBase = null; 
    		PreparedStatement preparedStatement = null;
    		ResultSet resultat = null;
    		List<Client> LesClients = new ArrayList<Client>();
     
    		  HttpSession session = request.getSession(); 
     
    		try{
    			connexionBase = daoFactory.getConnection();
    			preparedStatement = connexionBase.prepareStatement("select * from client order by nomclient");
    			resultat = preparedStatement.executeQuery();
     
    			while(resultat.next()){
    				 LesClients.add(stockage(resultat));
     
    			}
     
    		}catch(SQLException s){
     
    			throw new DAOException("La selection a échoué.",s);
    	    }finally {
    			fermeturesSilencieuses( resultat, preparedStatement,connexionBase );
    		}
    		return LesClients;
    	}
    code de la méthode utilitaire stockage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private static Client stockage(ResultSet stock) throws SQLException{
    	   Client client = new Client();
    	   client.setNumCompte(stock.getLong("numcompte"));
    	   client.setNomClient(stock.getString("nomclient"));
    	   client.setPrenomClient(stock.getString("prenomclient"));
    	   client.setCodeClient(stock.getString("codeclient"));
    	return client;
    	}

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

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Ton code est bon (pour ce que tu veux faire, il y des trucs qui ne servent à rien ou qui pourraient être améliorées, mais là n'est pas le point)

    Reste à voir la partie affichage, mais de ce que j'en vois, tu récupères tous tes enregistrements là !

  9. #9
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Dans ce cas, ton tableau stocke des objets "Client "
    Si tu veux avoir la liste des numcompte, il faut parcourir le tableau "LesClients", récupérer à chaque fois l'objet "Client" et demander son compte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (Client client: LesClients) {
    System.out.println(client.getNumCompte());
    }
    du coup, dans ta page JSF ce serait plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <c:out value = "${LesClients[0].getNumCompte()}"/>
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

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

Discussions similaires

  1. [MySQL] Requête pour récupérer toutes les valeurs d'un tableau
    Par djoumusic dans le forum PHP & Base de données
    Réponses: 40
    Dernier message: 24/08/2008, 22h11
  2. Comment récupérer toutes les valeurs dans :params avec form_tag ?
    Par Didier Pitre dans le forum Ruby on Rails
    Réponses: 0
    Dernier message: 17/04/2008, 10h33
  3. Récupérer toutes les valeurs d'un select
    Par z980x dans le forum Struts 1
    Réponses: 6
    Dernier message: 13/03/2008, 10h08
  4. Réponses: 14
    Dernier message: 13/07/2007, 12h05
  5. récupérer toutes les valeurs choisies ds un select multiple
    Par toome dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 24/10/2005, 13h45

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