diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Graphic.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Graphic.java index c598fd6..e547db1 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Graphic.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Graphic.java @@ -17,6 +17,7 @@ import fr.iutfbleau.projetIHM2022FI2.API.Groupe; import fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe; import fr.iutfbleau.projetIHM2022FI2.Graphic.View.PaintGroupe; import fr.iutfbleau.projetIHM2022FI2.MNP.AbstractGroupeFactoryNP; +import fr.iutfbleau.projetIHM2022FI2.MNP.EtudiantNP; import fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP; public class Graphic{ @@ -30,13 +31,13 @@ public class Graphic{ this.fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.getPromo(); this.fenetre.setVisible(true); - /* + System.out.println(this.agf.getPromotion().monPrint()); Groupe racineDeLaPartition = agf.getPromotion().getSousGroupes().iterator().next(); System.out.println(racineDeLaPartition.monPrint()); for(Groupe g : racineDeLaPartition.getSousGroupes()){ System.out.println(g.monPrint()); - }*/ + } } private void getPromo(){ @@ -56,13 +57,13 @@ public class Graphic{ if(rs.first()){ Groupe promo=new GroupeNP(rs.getInt(1), rs.getString(2), rs.getInt(3), rs.getInt(4), TypeGroupe.getType(rs.getString(5)), null); this.agf=new AbstractGroupeFactoryNP(promo); - this.addSousGroupe(promo); + this.addSousGroupe(promo, cnx); } while(rs.next()){ Groupe g=new GroupeNP(rs.getInt(1), rs.getString(2), rs.getInt(3), rs.getInt(4), TypeGroupe.getType(rs.getString(5)), null); if(agf.knows(g)==false){ agf.addGroupe(g); - this.addSousGroupe(g); + this.addSousGroupe(g, cnx); } } }catch(SQLException e){ @@ -84,45 +85,56 @@ public class Graphic{ System.out.println("pilote non disponible"); } } - private void addSousGroupe(Groupe g){ + private void addSousGroupe(Groupe g, Connection cnx){ + this.addEtudiant(g, cnx); try{ - Class.forName("org.mariadb.jdbc.Driver"); + PreparedStatement pst= cnx.prepareStatement( + "SELECT `id`, `nom`, `min`, `max`, `value`, `id-parent` FROM `Groupe` join `TYPE` on Groupe.Type=TYPE.name where Groupe.`id-parent`=? and Groupe.id!=Groupe.`id-parent`;"); try{ - Connection cnx = DriverManager.getConnection( - "jdbc:mariadb://dwarves.iut-fbleau.fr/chaignea", - "chaignea", "Chaigneauphpmyadmin"); + pst.setString(1, String.valueOf(g.getId())); + ResultSet rs=pst.executeQuery(); try{ - PreparedStatement pst = cnx.prepareStatement( - "SELECT `id`, `nom`, `min`, `max`, `value`, `id-parent` FROM `Groupe` join `TYPE` on Groupe.Type=TYPE.name where Groupe.`id-parent`=? and Groupe.id!=Groupe.`id-parent`;"); - try{ - pst.setInt(g.getId(), 1); - ResultSet rs=pst.executeQuery(); - try{ - while(rs.next()){ - System.out.println(g.getName()+" "+rs.getString(2)); - Groupe nouveau=new GroupeNP(rs.getInt(1), rs.getString(2), rs.getInt(3), rs.getInt(4), TypeGroupe.getType(rs.getString(5)), g); - this.agf.addGroupe(nouveau); - g.addSousGroupe(nouveau); - this.addSousGroupe(nouveau); - } - }catch(SQLException e){ - System.out.println("erreur dans la prise de resultat"); - } - rs.close(); - }catch(SQLException e){ - //ils n'ont pas de sous groupe - System.out.println(g.getId() + "est le pere"); + while(rs.next()){ + System.out.println(g.getName()+" id= "+g.getId()+" "+rs.getString(2)); + Groupe nouveau=new GroupeNP(rs.getInt(1), rs.getString(2), rs.getInt(3), rs.getInt(4), TypeGroupe.getType(rs.getString(5)), g); + this.agf.addGroupe(nouveau); + g.addSousGroupe(nouveau); + this.addSousGroupe(nouveau, cnx); } - pst.close(); }catch(SQLException e){ - System.out.println("erreur dans la preparation"); + System.out.println("erreur dans la prise de resultat"); } - cnx.close(); - }catch(SQLException e){ - System.out.println("Erreur dans la connexion!"); - } - }catch(ClassNotFoundException e){ - System.out.println("pilote non disponible"); + rs.close(); + }catch(SQLException e){ + System.out.println("erreur dans la préparation"); + } + pst.close(); + }catch(SQLException e){ + System.out.println("erreur debut requete"); } } + + private void addEtudiant(Groupe g, Connection cnx){ + try{ + PreparedStatement pst= cnx.prepareStatement( + "SELECT Etudiant.nom, Etudiant.prenom, Etudiant.id FROM `Etudiant` NATURAL JOIN CONTIENT WHERE CONTIENT.idGroupe=? Group BY Etudiant.id;"); + try{ + pst.setString(1, String.valueOf(g.getId())); + ResultSet rs=pst.executeQuery(); + try{ + while(rs.next()){ + this.agf.addToGroupe(g, new EtudiantNP(rs.getString(1), rs.getString(2))); + } + }catch(SQLException e){ + System.out.println("erreur dans la prise de resultat"); + } + rs.close(); + }catch(SQLException e){ + System.out.println("erreur dans la préparation"); + } + pst.close(); + }catch(SQLException e){ + System.out.println("erreur debut requete"); + } + } }