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 :

problème d'insertion de données dans une map


Sujet :

Collection et Stream Java

  1. #1
    Membre régulier Avatar de kifouillou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 270
    Points : 84
    Points
    84
    Par défaut problème d'insertion de données dans une map
    Bonjour à tous,

    J'ai malheureusement encore un problème.
    Dans un de mes boutons je récupère des données d'un formulaire comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    monCR.setContact = getContact().getText();
    monCR.setCategorie =getCategorie().getText();
    monCR.setTxt_objectif1 =getTxt_objectif1().getText();
    monCR.setAdresse =getAdresse().getText();
    monCR.setVille =getVille().getText();
    monCR.setDuree =getDuree().getText();
    monCR.setHeure =getHeure().getText();
    monCR.setDate =getDate().getText();
    monCR.setFonction =getFonction().getText();
    monCR.setRS =getRS().getText();
    ...
    Dans une méthode de cette classe j'aimerais récupérer ces valeurs dans une map. J'ai le corps de ma méthode mais je ne sais pas comment continuer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public Map InsertionDonneePromotelec(){
    		promotelec = new HashMap();
     
    			promotelec.put();
    		}
    		return promotelec;
    	}
    Pourriez-vous encore une fois me donner un petit coup de main? Merci d'avance.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    for (int i = 0 ; i < monCR.size() ; i++)
    {
    promotelec.put(monCR.get(i));
    }


    Je ne connais pas la structeur monCR donc j'ai un peu de mal à t'aider.

    Désolé si je suis à coté de la question.

  3. #3
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Citation Envoyé par javadoc
    put(K key, V value)
    Associates the specified value with the specified key in this map.
    ben tu lui passe une clé et une valeur associée ...

    si ta clé est d'un type "perso" n'oublies pas de redéfinir les méthodes equals et hashcode ...

    [EDIT]
    tu es vraiment sûr de ta méthode ???
    Pas de paramètres, et tu retourne une map ....

    A mon avis c'est pas ça que tu veux faire ...

  4. #4
    Membre régulier Avatar de kifouillou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 270
    Points : 84
    Points
    84
    Par défaut
    Ah ouais. Merci pour ces réponses. Je ne suis pas vraiment sur de ma méthode. Ce que je sais c'est que je dois mettre les valeurs précédentes dans une map. Je pensais que le corps ainsi que la signature de ma méthode
    étaient bon. Apparemment non. Pouvez-vous m'aidez svp car je suis un peu perdu là.

    Ah tout hasard voici ma classe CR :

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
     
    public class CR {
     
     
    	private String contact ;
    	private String fonction ;
    	private String adresse ;
    	private String RS ;
    	private String categorie ;
    	private String ville ;
    	private String heure ;
    	private String duree ;
    	private String date ;
    	private String textArea_autresResultats ;
    	private String txt_AnnéeAtelier ;
    	private String txt_objectif2 ;
    	private String txt_objectif3 ;
    	private String txt_onglet2Objectif1 ;
    	private String txt_onglet2Objectif2 ;
    	private String txt_onglet2Objectif3 ;
    	private String txt_QuelAtelier ;
    	private String txt_quoi1 ;
    	private String txt_quoi2 ;
    	private String txt_quoi3 ;
    	private String txt_quoi4 ;
    	private String txt_RythmeAnnuelDiagnostic ;
    	private String txt_RythmeAnnuelLHE ;
    	private String txt_RythmeAnnuelLHN_HPE_THPE ;
    	private String txt_RythmeAnnuelLHNRT2000 ;
    	private String txt_RythmeAnnuelVisa ;
    	private String txtArea_commentaires ;
    	private String txtArea_PointsNegatifs ;
    	private String txtArea_PointsPositifs ;
    	private String chx_DemarcheSecurite ;
    	private String chx_Ateliers ;
    	private String chx_aucuneideeFilPilote ;
    	private String chx_aucuneideeNewsletter ;
    	private String chx_Diagnostic ;
    	private String chx_DiagnosticVisa ;
    	private String chx_LHE ;
    	private String chx_LHN ;
    	private String chx_LHN_HPE_THPE ;
    	private String chx_LHNRT2000 ;
    	private String chx_NonAttestationConsesusOptionnelle ;
    	private String chx_NonCataloguePublication ;
    	private String chx_NonConnaissanceSiteInternet ;
    	private String chx_nonFilPilote ;
    	private String chx_NonNewsletter ;
    	private String chx_OuiaAbonnerFilPilote ;
    	private String chx_OuiaAbonnerNewsletter ;
    	private String chx_OuiAttestationConsesusOptionnelle ;
    	private String chx_OuiCataloguePublication ;
    	private String chx_OuiConnaissanceSiteInternet ;
    	private String chx_ouiFilPilote ;
    	private String chx_OuiNewsletter ;
    	private String chx_ProduitsEtServicesUtilisesAteliers ;
    	private String chx_ServicesEtProduitsUtilisesLHE ;
    	private String chx_Visa ;
     
          public CR() {}
     
    	public String getAdresse() {
    		return adresse;
    	}
     
    	public void setAdresse(String adresse) {
    		this.adresse = adresse;
    	}
     
    	public String getCategorie() {
    		return categorie;
    	}
     
    	public void setCategorie(String categorie) {
    		this.categorie = categorie;
    	}
     
    	public String getContact() {
    		return contact;
    	}
     
    	public void setContact(String contact) {
    		this.contact = contact;
    	}
     
    	public String getDate() {
    		return date;
    	}
     
    	public void setDate(String date) {
    		this.date = date;
    	}
     
    	public String getDuree() {
    		return duree;
    	}
     
    	public void setDuree(String duree) {
    		this.duree = duree;
    	}
     
    	public String getFonction() {
    		return fonction;
    	}
     
    	public void setFonction(String fonction) {
    		this.fonction = fonction;
    	}
     
    	public String getHeure() {
    		return heure;
    	}
     
    	public void setHeure(String heure) {
    		this.heure = heure;
    	}
     
    	public String getRS() {
    		return RS;
    	}
     
    	public void setRS(String rs) {
    		RS = rs;
    	}
     
    	public String getVille() {
    		return ville;
    	}
     
    	public void setVille(String ville) {
    		this.ville = ville;
    	}
    Encore et toujours merci.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    Inclu une Map dans ta classe, et ensuite tu fais un addAll(taMap) et ca passera non ?

  6. #6
    Membre régulier Avatar de kifouillou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 270
    Points : 84
    Points
    84
    Par défaut
    Ben en fait ce que je veux faire c'est récupérer les valeurs de mes champs, ce que je fais avec les getText et ensuite je voudrais mettre ces strings dans une map pour pouvoir les placer ensuite dans un pdf. Voilà vous en savez déjà un peu plus. Je ne sais pas si cela peut vous aider. En tout cas merci beaucoup de l'aide qui m'est apportée.

  7. #7
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    euh .... autant pour moi,

    je pensais que tu voulais mettre ton CR dans la hashmap. En fait je croyais que tu voulais une hashmap de CR ...

    Si c'est ça que tu veux, il suffit, dans la classe qui possède cette liste de faire le put(Clé du CR, CR)


    En fait, je ne comprends pas pourquoi tu cherche à mettre les données dans une hashmap ? Quel est l'intérêt vu que ton CR a des get ?

    Enfin bref. En gros tu veux pouvoir transformer ton CR en une liste de valeurs ? Enfin comme si tu faisais un toString() mais pour renvoyer une Map ? Ca me semble bien bizarre mais bon ... pour faire ce que tu veux il faut :

    pour chaque variable de ton CR faire un put(nom de la variable, valeur) ... et là à part le faire à la mano, je vois pas trop ...

    en gros :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public Map InsertionDonneePromotelec(){
    		HashMap<String,String> promotelec = new HashMap<String,String>();
     
    			promotelec.put("contact",contact);
                            promotelec.put("fonction",fonction);
                            // ... bref tout à la main
     
    		}
    		return promotelec;
    	}
    Sinon, mais là je ne connais pas, il faut que tu te penche sur la réflexivité (cf java.lang.reflect, surtout la classe Member). Normalement tu doit pouvoir récupérer les noms de toutes tes variables. ce qui te donnerait en pseudo code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public Map InsertionDonneePromotelec(){
    HashMap<String,String> promotelec = new HashMap<String,String>();
     
                         for( listedesVariablesDeLaClasse )   // avec un for étendu j'imagine
    			promotelec.put(nomDeLaVariable,valeurDeLaVariable)
     
    		}
    		return promotelec;
    	}
    Désolé mais je m'y connais pas là dedans ...

  8. #8
    Membre régulier Avatar de kifouillou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 270
    Points : 84
    Points
    84
    Par défaut
    Bonjour,
    Tout d'abord merci pour ta réponse. J'ai essayé ce que tu m'as di mais sans succès.
    en fait je crois que c'est moi qui me suis mal exprimé.

    J'ai une classe MyView qui génère toute mon interface. J'ai une autre classe CR qui contient des strings. Car je vais manipuler des strings pour les mettre dans mon pdf.

    C'est pourquoi je fais appel dans ma classe MyView à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    monCR.setContact(getContact().getText());
    monCR.setCategorie(getCategorie().getText());
    ...
    Quand j'appuie sur le bouton terminer sa me récupère donc les valeurs des différents champs.
    Et je voudrais mettre ces valeurs dans une map en fait(peut-on faire cela avec un iterator pour éviter de tout taper?. Je ne sais pas si je suis un peu plus clair et surtout si c'est faisable.
    En tout cas d'avance merci beaucoup

  9. #9
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    oui, pour éviter de tout taper regarde cet article, normalement tu dois pouvoir récupérer ce que tu veux ...

  10. #10
    Membre régulier Avatar de kifouillou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 270
    Points : 84
    Points
    84
    Par défaut
    Re,

    Merci du lien In. J'ai donc regardé mais j'avoue que cela m'a un peu perdu cette histoire de réflexivité.
    Bon j'arrive à afficher un champ.C'est déjà sa. Mais pour trouver la boucle j'ai du mal. Y aurait pas moyen de faire un truc simple avec un iterator ou je sais pas trop?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Map map = new HashMap();
    String valeur = monCR.getCategorie();				MiseEnFormeDonnee bean = new MiseEnFormeDonnee();
    	bean.setValeur(valeur);
    	bean.setTaille(12);
    	bean.setPosX(118);
    	bean.setPosY(52);
    	map.put(valeur,bean);
    Je voulais faire un truc du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Map map = new HashMap();
    	String cle = monCR.getCategorie();
    	Iterator iter = monCR.keySet().iterator();
    	while (iter.hasNext()) {
    	  cle = (String) iter.next();
    	MiseEnFormeDonnee bean = new MiseEnFormeDonnee();
    		bean.setCle(cle);
    		bean.setValeur(cle);
    		bean.setTaille(12);
    		bean.setPosX(118);
    		bean.setPosY(52);
     
    		 map.put(cle,bean);
    Mais c'est pas bon.

    Je n'arrive réelle pas à savoir comment parcourir tous les champs. Pourriez vous me dire si ce code est dans un bon esprit et si oui, comment le modifier?
    Encore et toujours merci

  11. #11
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    bon alors je propose qqchose de non testé et d'à peu près :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Field[] f = null;
    Class c = null;
    Hashmap<String,String> map = new Hashmap<String,String>();
     
    c = this.getClass();   // récupère la classe
    f = c.getFields();      // récupère les champs
     
    for( Field champ : f){
     
        map.put(f.getName(),f.get(this));   // bon là j'avoue je suis pas sûr de moi ...
     
    }
    voila, ça doit pas être trop loin ...


    en espérant que ça te mette sur la bonne voie ...

  12. #12
    Membre régulier Avatar de kifouillou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 270
    Points : 84
    Points
    84
    Par défaut
    bonjour in,

    comme je te l'ai dis par MP j'ai trouvé une alternative à ta solution. Mais d'ici 2 semaines(j'aurais fini mon application) je vais me pencer la-dessus et je te tiendrai au courant. En tout cas merci beaucoup pour ton aide.

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

Discussions similaires

  1. Problème d'insertion de données dans une base
    Par fraisa1985 dans le forum Général Java
    Réponses: 1
    Dernier message: 10/12/2012, 09h09
  2. [Débutant] Problème d'insertion de données dans une BDD sqlserver ce
    Par chinwya dans le forum VB.NET
    Réponses: 2
    Dernier message: 24/07/2012, 12h29
  3. [MySQL] Problème d'insertion de données dans une base MySql à partir d'un fichier csv
    Par kazabandi dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 22/12/2010, 18h05
  4. [Oracle] problème d'insertion de données dans une table sous oracle
    Par Zombiman dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/05/2009, 14h58
  5. [VB6]problème d'insertion des donneés dans une base d'Access2003
    Par lanbok dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/05/2006, 12h17

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