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 écrase données ArrayList.


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 42
    Par défaut Problème écrase données ArrayList.
    Bonjour,
    Je travaille avec JSF et j'ai dans un de mes Java beans 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    public class MasterBean {
     
    	private List<ItemBean> colList, rowList;
     
    	public MasterBean() throws SQLException {
     
    	    ResultSet rs=null;
    	    try{
     
    	    String url="jdbc:oracle:thin:@192.168.100.34:1521:ORCL";
    	    DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
    	    Connection conn = DriverManager.getConnection(url,"user","pas");
     
     
    	    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
    	    rs=stmt.executeQuery("SELECT sym FROM PVMCA WHERE id_cc=11042930002");
     
    	    }
    	    catch (...)}     
     
    	    rowList = new ArrayList<ItemBean>();
    	    while (rs.next())
    	    {
    	      colList = new ArrayList<ItemBean>();
    	      String tmpSym = rs.getString("sym");            
     
    	      colList.add(new ItemBean(tmpSym));
    	    }
    	}
     
    	public List<ItemBean> getList() {
    		return colList;
    	}
     
    	public void setList(List<ItemBean> colList) {
    		this.colList = colList;
    	}
     
    }
    ItemBean est juste une classe ou j'ai des setters et getters (pour JSF) et un constructeur ItemBean(String name).....
    Donc mon souci c'est que je recupere quelque part cette colList (dans ma page .jsp avec une datatable pour ceux qui connaissent...). Cela devrait me donner plusieurs lignes de la BD MAIS j'ai toujours la dernière!
    Je pense que dans la boucle WHILE de mon resultset j'écrase chaque fois la valeur par la suivante donc j'arrive juste a avoir la derniere ligne de la table. Comment je pourrais faire pour avoir toutes mes données ???

    J'ai posté ici car c'est plus un souci java que JSF.

    Merci à vous

  2. #2
    Membre expérimenté
    Inscrit en
    Juin 2003
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 292
    Par défaut
    bein oui parceque dans ta boucle while a chacque fois tu cree une nouvelle ArrayList
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    while (rs.next())
    	    {
    	      colList = new ArrayList<ItemBean>();
    	      String tmpSym = rs.getString("sym");            
     
    	      colList.add(new ItemBean(tmpSym));
    	    }
    retire la de ta boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     colList = new ArrayList<ItemBean>();
    while (rs.next())
    	    {
     
    	      String tmpSym = rs.getString("sym");            
     
    	      colList.add(new ItemBean(tmpSym));
    	    }
    Encore une chose, ton bean qui accede a ta Database, il faut vraiment revoir ta conception!!

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 151
    Par défaut
    Citation Envoyé par mihaestii Voir le message
    Bonjour,
    Je travaille avec JSF et j'ai dans un de mes Java beans ce code:

    J'ai posté ici car c'est plus un souci java que JSF.

    Merci à vous
    Bonjour,
    Je crois que c'est normal. Dans ton while tu cree colList a chaque tour.
    Il faut enlever cette ligne dans le while
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    colList = new ArrayList<ItemBean>();
    et le mettre juste avant.

  4. #4
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 42
    Par défaut
    merci....suis un peu rouge pour avoir demandé..pas mangé surement!
    et aussi...pourquoi l'acces à la database n'est pas bien ?
    la j'ai pas mis la bonne version; j'utilise normalement une procèdure stockée pour acceder mes données...mais pour la connexion et le prepare ya il un autre moyen ??

  5. #5
    Membre expérimenté
    Inscrit en
    Juin 2003
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 292
    Par défaut
    Citation Envoyé par mihaestii Voir le message
    merci....suis un peu rouge pour avoir demandé..pas mangé surement!
    et aussi...pourquoi l'acces à la database n'est pas bien ?
    la j'ai pas mis la bonne version; j'utilise normalement une procèdure stockée pour acceder mes données...mais pour la connexion et le prepare ya il un autre moyen ??
    l'acces a ta base de donnes est correct mais je parle d un niveau coneptuel, il faut sperarer les differetentes couches, Vue,Metier et donnees. et c est pas le cas si tu as tes bean qui accede a la base de donnes.
    regarde quelques tutos sur les designs patterns, puisque tu es sur JSF regarde le MVC 2, SeesionFacade...

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 151
    Par défaut
    Citation Envoyé par mihaestii Voir le message
    ...mais pour la connexion et le prepare ya il un autre moyen ??
    Ce qui vient d'être dit est vrai. Cependant si tu es entrain d'apprendre alors ce n'est pas bien grave , car çà purrais te donner la migraine ( je rigole peut être). Tu te rendras compte par toi même que ce n'est pas bien pour la maintenance et la reutisabilité.

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

Discussions similaires

  1. Problème donnée écrasée dans arraylist
    Par titounnette dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 18/07/2011, 12h23
  2. [MySQL] problème ajout donnée dans BDD via php
    Par Skeud007 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 29/05/2006, 23h41
  3. [SQL] Moteur de recherche problème affichage donnée dans select
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 07/04/2006, 20h27
  4. [débutant] problème affichage données table ds TDBGrid
    Par lidouka dans le forum Composants VCL
    Réponses: 1
    Dernier message: 16/12/2005, 13h50
  5. problème ajout données avec db.execute et access
    Par Dauphind dans le forum Access
    Réponses: 2
    Dernier message: 29/11/2005, 12h03

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