Pb d'ajout d'objets dans une liste

Résolu/Fermé
Kingos - 7 sept. 2013 à 16:02
 Kingos - 7 sept. 2013 à 20:23
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

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
Modifié par KX le 7/09/2013 à 19:46
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
0
Ca fonctionne en enlevant static, je te remercie :)
0