Pb d'ajout d'objets dans une liste [Résolu/Fermé]

Signaler
-
 Kingos -
Bonjour,

J'ai un problème.

Quand j'ajoute mes objets Employe dans une liste, toute ma liste est remplacé par le dernier Employe ajouté.

static List<Employes> ListEmployes = new ArrayList<Employes>();


public static List<Employes> EmployesAll() {
ResultSet resultSQL = execQuery("select * from employes");
try {
while(resultSQL.next()){
id = resultSQL.getString(1);
id_type = resultSQL.getInt(2);
id_antenne = resultSQL.getInt(3);
nom = resultSQL.getString(4);
prenom = resultSQL.getString(5);
telephone = resultSQL.getString(6);
email = resultSQL.getString(7);
mdp = resultSQL.getString(8);
Employes Employe = new Employes(id,id_type,id_antenne,nom,prenom,telephone,email,mdp);
ListEmployes.add(Employe);
for(int a=0; a<ListEmployes.size(); a++) {
System.out.println(ListEmployes.get(a).id);
}
}
return ListEmployes;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}

Je comprend pas...

Merci de m'aider !

2 réponses

Messages postés
15932
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
9 juillet 2020
2 629
J'avoue que je ne vois pas l'erreur... Cependant l'utilisation de tout en static est fausse, en particulier pour la liste de retour qui va accumuler les résultats d'un appel sur l'autre.

public static List<Employe> getAllEmployes()

{
List<Employe> listEmployes = new ArrayList<Employe>();

try
{
ResultSet resultSQL = execQuery("select * from employes");

while (resultSQL.next())
{
String id = resultSQL.getString(1);
int id_type = resultSQL.getInt(2);
int id_antenne = resultSQL.getInt(3);
String nom = resultSQL.getString(4);
String prenom = resultSQL.getString(5);
String telephone = resultSQL.getString(6);
String email = resultSQL.getString(7);
String mdp = resultSQL.getString(8);

Employe employe = new Employe(id, id_type, id_antenne, nom, prenom, telephone, email, mdp);

listEmployes.add(employe);

// System.out.println(listEmployes);
}
}
catch (Exception e)
{
e.printStackTrace();
}

return ListEmployes;
}
La confiance n'exclut pas le contrôle
Ca fonctionne en enlevant static, je te remercie :)