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 un float à partir d'un HashMap


Sujet :

Collection et Stream Java

  1. #1
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    24
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 24
    Points : 26
    Points
    26
    Par défaut Récupérer un float à partir d'un HashMap
    Bonjour tous,
    j'ai développé un code java qui permet de récupérer des valeurs à partir des JTextField et les insérer dans un HashMap les valeurs de ce dernier vont stoker dans une base de données mon problème c'est que je puisse pas récupérer les valeurs de type Float et Int qui sont dans le HashMap
    voilà mon code et toujours y a une erreur au niveau de ces deux types
    merci pour vos aides
    cette est la classe Insert elle marche bien
    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
    private HashMap info(){
    		HashMap tab = new HashMap() ;
    		Date d1 ;
    		Date d=Date.valueOf(date_c.getText());
    		if(date_r.getText().equals("")) d1 = null; 
    		else d1=Date.valueOf(date_r.getText());
    		int num = Integer.parseInt(numero.getText()) ;
    		float mon = Float.parseFloat(montant.getText()) ;
    		int in = Integer.parseInt(inpitation.getText()) ; 
    		tab.put("date1", d) ;
    		tab.put("date2", d1) ;
    		tab.put("numero", num) ;
    		tab.put("libelle", libelle.getText()) ;
    		tab.put("montant", mon) ;
    		tab.put("inpitation", in) ;
    		return tab ;
    	}
    cette méthode est dans la classe GestionBase et ici le problème
    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
    protected void insert(String query,HashMap s){
    		 try {
     			Class.forName(pilote);
     			Connection connexion = 
     				DriverManager.getConnection("jdbc:mysql://localhost/cema","root","");
     			PreparedStatement prp = connexion.prepareStatement(query) ;
     			int z=0;
     			Iterator i = s.entrySet().iterator() ;
     			while(i.hasNext()){
     				Map.Entry entry = (Map.Entry) i.next();
     				if(entry.getKey().equals("montant"))
     			prp.setFloat(z,Float.parseFloat((String) entry.getValue())) ;
     				else{
     	if((entry.getKey().equals("date1"))||(entry.getKey().equals("date2")))
     						prp.setDate(z, (Date) entry.getValue()) ;
     					else{
     						if(entry.getKey().equals("numero"))
     			prp.setInt(z, Integer.parseInt((String)entry.getValue())) ;
     						else{
                         if(entry.getKey().equals("libelle"))
     				prp.setString(z, (String) entry.getValue()) ;
     	else prp.setInt(z, Integer.parseInt((String)entry.getValue())) ;
     						}
     					}
     				}
     			    System.out.println(entry.getValue()) ;
     				z++;
     			}
                 prp.executeUpdate();
    		 }catch (ClassNotFoundException a) {
     
     			a.printStackTrace();
     		} catch (SQLException b) {
     
    				b.printStackTrace();
    			}
    	}
    ensuite la méthode qui permet d'insérer dans la base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private String inse(){
    		String query = new String("INSERT INTO banque (`date_cheque`,`date_releve`,`cheque`,`libelle`,`montant`,`inpitation`) VALUES (?,?,?,?,?,?)");
    		return query;
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     public void actionPerformed(ActionEvent e) {
     
    			if(e.getSource() == ajout){
    				 g.insert(inse(), info()) ;
    			}
    	 }

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Ce que tu as mis aux clés "numero" et "montant" sont des Integer et des Float, pas des String.
    Tu ne peux donc pas caster leur valeur en String, et donc pas faire (String) entry.getValue() sur leurs entrées.

    Au passage, l'emploi d'une Map pour contenir ces données est un mauvais choix. Il faudrait créer une classe dédiée à la place.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    24
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 24
    Points : 26
    Points
    26
    Par défaut
    merci pour la remarque j'ai trouvé la solution

    Citation Envoyé par thelvin Voir le message
    Ce que tu as mis aux clés "numero" et "montant" sont des Integer et des Float, pas des String.
    Tu ne peux donc pas caster leur valeur en String, et donc pas faire (String) entry.getValue() sur leurs entrées.

    Au passage, l'emploi d'une Map pour contenir ces données est un mauvais choix. Il faudrait créer une classe dédiée à la place.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/08/2011, 17h01
  2. Récupérer des floats à partir d'une string
    Par hamster dans le forum SL & STL
    Réponses: 8
    Dernier message: 09/06/2005, 08h10
  3. [JTree] Récupérer le modèle à partir de la sélection
    Par bizerta dans le forum Composants
    Réponses: 7
    Dernier message: 08/06/2005, 13h18
  4. Réponses: 11
    Dernier message: 08/04/2005, 11h20
  5. Réponses: 3
    Dernier message: 24/09/2004, 21h21

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