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

Collection et Stream Java Discussion :

Récupérer la clé d'un HashMap converti en Jlist


Sujet :

Collection et Stream Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 200
    Points : 76
    Points
    76
    Par défaut Récupérer la clé d'un HashMap converti en Jlist
    Bonjour à tous,

    J'ai besoin de votre aide, je ne suis pas sûr d'avoir raisonner correctement sur ce coup là ...
    J'ai une appli qui va chercher des infos dans une bdd via un select.
    Je récupère toutes les valeurs que je stocke dans un HashMap avec comme clé l'ID et l'objet le reste du Select.
    Je stocke mon HashMap dans un JList.
    Je n'arrive pas à récupérer mon ID de BDD pour récupérer des infos plus précises sur l'objet lorsqu'un utilisateur clique sur une ligne ...
    Est-ce que j'ai bien procédé pour la création des différents éléments ?
    Merci à tous ceux qui pourront m'apporter un peu de lumière

  2. #2
    Membre habitué
    Homme Profil pro
    Chef de projet, développeur .net
    Inscrit en
    Juin 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet, développeur .net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 76
    Points : 136
    Points
    136
    Par défaut
    Salut

    ça va être difficile de te répondre si tu ne nous explique pas comment tu transfère ton HashMap dans ta Jliste. Un minimum de code nous permettrait d'y voir plus clair.

    Sinon, je ne vois pas trop pourquoi tu aurais besoin d'une Jliste en plus de ton HashMap.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 200
    Points : 76
    Points
    76
    Par défaut
    J'utilise la JList pour l'affichage dans un JPanel.
    collPatient est le HashMap.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    HashMap<String, Patient> collPatient = new HashMap<String, Patient>();
    ...
    pt = new Patient(res.getString("nom"), res.getString("prenom"), Integer.parseInt(res.getString("age")), res.getString("tel"), res.getString("adresse"));
    collPatient.put(res.getString("id"),pt);
    ...
    listeRes.setListData(collPatient.keySet().toArray());
    J'ai une interface avec un JList qui me liste toutes les infos de ma BDD.
    J'ai ensuite besoin de récupérer l'ID d'une ligne pour faire des suppr, update, recherche d'infos complémentaires ...
    L'ID étant bien évidemment la clé du HasMap et non pas l'id de la JList.

  4. #4
    Membre actif Avatar de Vikisme
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2007
    Messages : 172
    Points : 228
    Points
    228
    Par défaut
    Je ne suis pas sûr de comprendre...

    C'est ça la réponse à ta question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String idSelectionne = (String) listeRes.getSelectedObject();
    Ou tu recherche autre chose ?
    Tout passe, tout casse
    Le joint le cul lassent...


    http://www.myspace.fr/geampa_raler

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 200
    Points : 76
    Points
    76
    Par défaut
    listeRes.getSelectedObject(); ne peut être utilisé dans mon cas, je peux faire un listeRes.getSelectedIndex() ce qui me renvoie la position dans la liste de ligne sélectionné.
    En somme ça me renvoie 0 si c'est la première ligne.
    Sauf que ce dont j'ai besoin c'est l'ID correspondant à la sélection dans la bdd.
    La première ligne de ma JList peut très bien correspondre à l'ID 5 dans la bdd.

    Vous faites comment vous quand vous avez un JList avec du contenu issu d'une base de données et que votre application permet de gérer des infos stockées en base de données ?

  6. #6
    Membre actif Avatar de Vikisme
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2007
    Messages : 172
    Points : 228
    Points
    228
    Par défaut
    Je ne vois pas vraiment pourquoi on ne pourrait pas utiliser "listeRes.getSelectedObject()" mais sinon rien ne t’empêche de faire quelque chose de certes, pas très élégant mais qui devrait marcher "collPatient.keySet().toArray()[listeRes.getSelectedIndex()];".

    Je ne vois pas bien l'utilité d'une Map pour gérer les données de la JList ici... Ne serait-ce pas plus simple de ne gérer qu'une liste d'objets ? Qu'apporte réellement la Map ?
    Autre question, pourquoi l'identifiant du patient n'est pas une information portée par la classe patient ?

    Personnellement, quand je gère des données issues de bases de données, j'utilise des API de persistances... Si la base de données est très petite et que ça devient trop lourd pour ce que ça apporte, j'essai d'organiser mes classes un peu de la même manière :
    - Une classe est associée à une table
    - Tous les champs BDD sont des attributs de cette classe (avec éventuellement des liens vers d'autres classes/tables)
    Ensuite pour les insert/update/select, j'essai d'avoir des classes qui permettent de faire ces opérations indépendamment de la classe/table.
    Tout passe, tout casse
    Le joint le cul lassent...


    http://www.myspace.fr/geampa_raler

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 200
    Points : 76
    Points
    76
    Par défaut
    J'utilise une Map pour pouvoir stocker justement ce petit ID ...
    Ouais je pourrais l'intégrer dans la classe, mais il faudrait qu'à chaque insertion je teste la dernière valeur présente en bdd pour lui ajouter + 1.
    Tu fais comme ça pour tes Index, avec une requête SQL du genre ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id from la_table ORDER BY champ_numero desc LIMIT 1
    Ou alors je laisse à null lors de l'ajout et je m'en sers que pour les update et select où je pourrais lire la valeur ...
    C'est un index dans ma BDD qui s'auto-incrémente donc je pensais ne pas m'en préoccuper.
    Je ne connais pas les API de persistance ?

  8. #8
    Membre actif Avatar de Vikisme
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2007
    Messages : 172
    Points : 228
    Points
    228
    Par défaut
    Lorsque tu exécute la requête d'insertion, tu lui passe un id null, il sera alors généré automatiquement et tu peux ensuite récupérer l'id généré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    resultSet = pstmt.getGeneratedKeys(); 
     
    if (resultSet != null && resultSet.next()) { 
        newid = resultSet.getInt(1); 
    }
    Tout passe, tout casse
    Le joint le cul lassent...


    http://www.myspace.fr/geampa_raler

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 200
    Points : 76
    Points
    76
    Par défaut
    Ok, merci pour ton aide

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

Discussions similaires

  1. Récupérer les éléments d'une hashmap dans une boucle
    Par khalous91 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 06/05/2015, 11h51
  2. [Débutant] Récupérer les valeurs et les clés d'une HashMap
    Par Mobistar dans le forum Collection et Stream
    Réponses: 14
    Dernier message: 29/10/2014, 00h01
  3. Comment récupérer le contenu d'un item dans une JList ?
    Par julie_lab dans le forum Composants
    Réponses: 3
    Dernier message: 01/11/2010, 12h25
  4. Récupèrer la valeur d'une hashmap
    Par sissi25 dans le forum JSF
    Réponses: 6
    Dernier message: 30/05/2008, 16h28
  5. récupérer nombre itérations vers une valeur sur hashmap
    Par flora806 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 26/02/2008, 14h43

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