Coucou tout le monde
Voila, j'ai un programme java qui se connecte à une base oracle (ça sa marche) sur laquelle j'ai besoin de récuperer les objets pour les manipuler avec java.
Mon soucis et que certains TAD définit au sein de oracle contiennent des liste de TAD également (qui sont des ArrayList<> dans ma classe).
Existe t-il une manière propre de récupérer ces listes de tad dans mon arraylist ( a partir du ResultSet) ou dois-je effectuer une nouvelle requete pour recuperer la liste de cette objet?
Exemple :
le TAD d'oracle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public class Niveau { private String numero; private Statut statut; private ArrayList<Acquis> listeAcquis; private String designation; [...] }
Donc moi j'ai une methode qui récupère la liste des niveau au sein de la table ONiveau que je stock dans un ResultSet . Ensuite je parcoure le ResultSet pour enregistrer dans ma liste niveau par niveau et remplir les attribut, mais je bloque pour les liste car je chercher une methode propre pour les récupérer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 NUM_NIVEAU VARCHAR2(10) DESIGNATION VARCHAR2(10) LISTE_ACQUIS NTACQUIS STATUT REF OF TSTATUT
merci d'avance
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 public ArrayList<Niveau> creerListeNiveaux() { ConnectionBD con=null; try { con = ConnectionBD.getInstance(); } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } ArrayList<Niveau> listeNiveaux = null; Niveau niveau = new Niveau(); String req = "Select num_niveau, designation,liste_acquis,DEREF(statut).num_statut, from Oniveau"; ResultSet res = null; try { res = con.executeRequete(req); } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } try { while (res.next()){ niveau.setNumero(res.getString(1)); /*C'est ici que je sais pas comment récupérer la suite proprement*/ listeNiveaux.add(niveau); } } catch (SQLException e) { e.printStackTrace(); }
Yann
Partager