Parcourir un bean en java

Signaler
Messages postés
18
Date d'inscription
lundi 2 avril 2018
Statut
Membre
Dernière intervention
10 septembre 2019
-
Messages postés
814
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
17 avril 2020
-
Salut tout le monde , j'ai eu un probléme pour récupérer successivement les données correspondantes du bean , ça me répéte les données du bean de l'index 0 ;
le voici le code source :

- Mon bean connected :
package com.worldvista.dev.beans;

import java.io.Serializable;

public class connected implements Serializable{
private String nom , prenom , hoursLogin , dateDay ;

public String getNom() {
return nom;
}

public void setNom(String nom) {
this.nom = nom;
}

public String getPrenom() {
return prenom;
}

public void setPrenom(String prenom) {
this.prenom = prenom;
}

public String getHoursLogin() {
return hoursLogin;
}

public void setHoursLogin(String hoursLogin) {
this.hoursLogin = hoursLogin;
}


public String getDateDay() {
return dateDay;
}

public void setDateDay(String dateDay) {
this.dateDay = dateDay;
}


}


- la classe contenant la methode recuperant et afichant les donnees du bean recupéré à partir de la boucle :

public class historiquesConnexion{

private ModuleConnexionInscription() testUser ;
private List<connected> listeConnected;
private connected userConnected ;
private List<String> listeIdUser;
private PreparedStatement pstmt ;
private ResultSet rslt;

public historiquesConnexion() {
testUser = new ModuleConnexionInscription();
con = new Connexion().getInstance();

}

public List topFiveConnected() {
userConnected = new connected();
listeIdUser = new ArrayList<String>();
listeConnected = new ArrayList<connected>();
try {
pstmt = con.prepareStatement("select nom , prenom , hoursLogin , dateDay from connected_history where id = id ");
rslt = pstmt.executeQuery();
while(rslt.next()){
userConnected.setNom(rslt.getString("nom"));
userConnected.setPrenom(rslt.getString("prenom"));
userConnected.setHoursLogin(rslt.getString("hoursLogin"));
userConnected.setDateDay(rslt.getString("dateDay"));

listeConnected.add(userConnected);
}

}catch (Exception e) {
e.printStackTrace();
}
return listeConnected;
}

public void printUser() {

List<connected> ls = topFiveConnected();

for(int i = 0 ; i < ls.size() ; i++){
connected = ls.get(i);
System.out.println(Connected.getNom());
}

public static void main(String args[]){
historiquesConnexion hq = new historiquesConnexion();
hq.printUser();
}

- données dans la base


- resultat apres l'execution
Connexion reussie !
jonhson
jonhson

1 réponse

Messages postés
18
Date d'inscription
lundi 2 avril 2018
Statut
Membre
Dernière intervention
10 septembre 2019

J'ai pu trouver la solution avec mes propres moyens , il fallait initialiser le bean connected dans la boucle while ........
Messages postés
814
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
17 avril 2020

C'est pas initialiser, mais pour être plus précis : il faut créer à chaque fois un nouveau objet (new) qui sera ajouté à la liste.