Bonsoir,
Je réfléchis à un mini-programme très simplifié qui réalise des pseudos arbres généalogiques a partir d'une base de données. Pour expliquer, je vais prendre un exemple.
Soit le morceau de code suivant :
L'ArrayList listePers contient les noms des personnes sans ascendant. Pour notre exemple, supposons qu'elle contient Ned Flanders et Grandpa Simpson. Pour chaque membre de la liste, on va taper en BDD pour voir si cette personne a des descendants. On ajoute chacun de ces descendants à la liste.
Ce code marchera très bien pour Ned Flanders : ses deux fils seront ajoutés sans problème.
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 PreparedStatement pst = null; ResultSet rs = null; ListIterator<String> li = listePers.listIterator(); pst = c.prepareStatement(reqDescendants); while(li.hasNext()) { String unNom = li.next(); pst.setString(1, unNom); rs = pst.executeQuery(); while(rs.next()) { String unAutreNom = rs.getString("nom"); li.add(unePersonne); } }
Pour Grandpa ça marchera un peu moins bien : Homer et son frère seront bien ajoutés mais Lisa, Bart et Maggie ne le serons pas.
En effet, d'un point de vu technique, si j'ai bien compris la javadoc, Homer sera ajouté à la liste avant l'itérateur et ne sera donc jamais traité à son tour.
Vu la richesse de Java, il doit y avoir une solution que je ne connais pas ...
Merci d'avance.
Partager