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

avec Java Discussion :

J'ajoute plusieurs objets dans une liste, mais quand je l'affiche, je ne vois que les valeurs du dernier objet


Sujet :

avec Java

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 213
    Points : 96
    Points
    96
    Par défaut J'ajoute plusieurs objets dans une liste, mais quand je l'affiche, je ne vois que les valeurs du dernier objet
    Bonjour à tous,

    Petit problème de logique je suppose, voici pour comprendre le code du client :
    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
     
    //clients
    		int nbClients = 100;
    		Client cl = new Client();
    		for (int i=5; i<=nbClients; i++) 
    		{
    			cl.setPrenom("Prénom"+i);
    			cl.setNom("Nom"+i);
    			cl.setAdresse("Adresse"+i);
    			cl.setMail(cl.getNom() +"."+ cl.getPrenom() +"@gmail.com");
    			cl.setPassword(cl.getNom());
    			cl.setProfilBean(p1);
     
    			client.add(cl);
    		}
    Je voudrais donc faire un insert avec ceci avec ce code :
    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
     
    //génération des clients :
    			System.out.println("Insertion des clients");
    			query="insert into client values ";
    			Iterator<Client> itClient = client.iterator();
    			while(itClient.hasNext()) 
    			{
    				Client clt = itClient.next();
    				query += "(null,'"
    					  + clt.getNom() +"','"
    					  + clt.getPrenom() +"','"
    					  + clt.getAdresse() +"','"
    					  + clt.getMail().toLowerCase() +"','"
    					  + clt.getPassword() +"',"
    					  + clt.getProfilBean() +"),";
    			}
    			query += "@tyty";
    			query = query.replace(",@tyty", "");
    			System.out.println(query);
    			Connexion.executerUpdate(query);
    Le problème est qu'il m'affiche toujours le dernier client

    Merci pour vos aides

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    il ne t'affiche pas le dernier client, il t'affiche la seule et unique instance (plusieurs fois à priori) de client que tu crées ici par Client cl = new Client();. Après, ta boucle affecte les informations des différents clients à cette même instance de Client, donc la dernière remplace les précédentes. Et dans ta liste tu as n fois la même instance de Client.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (int i=5; i<=nbClients; i++) {
    Client cl = new Client(); // une instance différente pour chaque client
    cl.setPrenom("Prénom"+i);
    /*...*/

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 213
    Points : 96
    Points
    96
    Par défaut
    Tout simplement , mais encore un petit sur la clé étrangère :
    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
     
    //génération des clients :
    System.out.println("Insertion des clients");
    query="insert into client values ";
    Iterator<Client> itClient = client.iterator();
    while(itClient.hasNext()) 
    {
    	Client clt = itClient.next();
    	query += "(null,'"
    		  + clt.getNom() +"','"
    		  + clt.getPrenom() +"','"
    		  + clt.getAdresse() +"','"
    		  + clt.getMail().toLowerCase() +"','"
    		  + clt.getPassword() +"','"
    		  + clt.getProfilBean().getId() +"'),";
    }
    query += "@tyty";
    query = query.replace(",@tyty", "");
    System.out.println(query);
    Connexion.executerUpdate(query);
    le clt.getProfilBean().getId() renvoi toujours 0

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Bah, ce qu'il y a dans cette propriété, c'est ce que tu y mets avec cl.setProfilBean(p1); (la même instance pour tous les clients). C'est quoi p1 ? Ça vient d'où ? C'est créé et initialisé comment ?

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 213
    Points : 96
    Points
    96
    Par défaut
    La voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //collection des profils d'utilisateurs
    ArrayList<Profil> profil = new ArrayList<Profil>();  
     
    Profil p1 = new Profil("Client");
    Profil p2 = new Profil("Inscrit");
    Profil p3 = new Profil("Gestionnaire");
    Profil p4 = new Profil("Administrateur");
     
    profil.add(p1);
    profil.add(p2);
    profil.add(p3);
    profil.add(p4);
    La table profil est un relation avec Client et quand je ne met pas le getId() il renvoi bien l'objet et je pensé qu'il l'aurait converti comme il faut

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Mais l'id du profil, dans cette classe Profil, il est initialisé comment et où ?

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

Discussions similaires

  1. Développer en JAVA ECLIPSE sur un micro perso
    Par padraig29 dans le forum Développement Web en Java
    Réponses: 15
    Dernier message: 06/12/2006, 09h56
  2. visual editor java eclipse plugin
    Par youcef81 dans le forum Eclipse Java
    Réponses: 9
    Dernier message: 30/08/2006, 17h33
  3. INSTEAD OF + INSERT = Boucle infinie ?
    Par Monstros Velu dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/07/2006, 15h59
  4. débutant JAVA+Eclipse
    Par ep31 dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 12/12/2005, 14h27
  5. [Eclipse 3.1]conflict de path entre java Eclipse et Oracle
    Par makohsarah dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 10/04/2005, 01h07

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