fin Modele Persistant de Donnée

This commit is contained in:
martins 2022-11-13 01:03:25 +01:00
parent d4619fab09
commit 82c4b78930

View File

@ -17,6 +17,7 @@ import fr.iutfbleau.projetIHM2022FI2.API.Groupe;
import fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe; import fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe;
import fr.iutfbleau.projetIHM2022FI2.Graphic.View.PaintGroupe; import fr.iutfbleau.projetIHM2022FI2.Graphic.View.PaintGroupe;
import fr.iutfbleau.projetIHM2022FI2.MNP.AbstractGroupeFactoryNP; import fr.iutfbleau.projetIHM2022FI2.MNP.AbstractGroupeFactoryNP;
import fr.iutfbleau.projetIHM2022FI2.MNP.EtudiantNP;
import fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP; import fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP;
public class Graphic{ public class Graphic{
@ -30,13 +31,13 @@ public class Graphic{
this.fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getPromo(); this.getPromo();
this.fenetre.setVisible(true); this.fenetre.setVisible(true);
/*
System.out.println(this.agf.getPromotion().monPrint()); System.out.println(this.agf.getPromotion().monPrint());
Groupe racineDeLaPartition = agf.getPromotion().getSousGroupes().iterator().next(); Groupe racineDeLaPartition = agf.getPromotion().getSousGroupes().iterator().next();
System.out.println(racineDeLaPartition.monPrint()); System.out.println(racineDeLaPartition.monPrint());
for(Groupe g : racineDeLaPartition.getSousGroupes()){ for(Groupe g : racineDeLaPartition.getSousGroupes()){
System.out.println(g.monPrint()); System.out.println(g.monPrint());
}*/ }
} }
private void getPromo(){ private void getPromo(){
@ -56,13 +57,13 @@ public class Graphic{
if(rs.first()){ 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); 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.agf=new AbstractGroupeFactoryNP(promo);
this.addSousGroupe(promo); this.addSousGroupe(promo, cnx);
} }
while(rs.next()){ 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); 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){ if(agf.knows(g)==false){
agf.addGroupe(g); agf.addGroupe(g);
this.addSousGroupe(g); this.addSousGroupe(g, cnx);
} }
} }
}catch(SQLException e){ }catch(SQLException e){
@ -84,45 +85,56 @@ public class Graphic{
System.out.println("pilote non disponible"); System.out.println("pilote non disponible");
} }
} }
private void addSousGroupe(Groupe g){ private void addSousGroupe(Groupe g, Connection cnx){
this.addEtudiant(g, cnx);
try{ 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{ try{
Connection cnx = DriverManager.getConnection( pst.setString(1, String.valueOf(g.getId()));
"jdbc:mariadb://dwarves.iut-fbleau.fr/chaignea", ResultSet rs=pst.executeQuery();
"chaignea", "Chaigneauphpmyadmin");
try{ try{
PreparedStatement pst = cnx.prepareStatement( while(rs.next()){
"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`;"); System.out.println(g.getName()+" id= "+g.getId()+" "+rs.getString(2));
try{ Groupe nouveau=new GroupeNP(rs.getInt(1), rs.getString(2), rs.getInt(3), rs.getInt(4), TypeGroupe.getType(rs.getString(5)), g);
pst.setInt(g.getId(), 1); this.agf.addGroupe(nouveau);
ResultSet rs=pst.executeQuery(); g.addSousGroupe(nouveau);
try{ this.addSousGroupe(nouveau, cnx);
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");
} }
pst.close();
}catch(SQLException e){ }catch(SQLException e){
System.out.println("erreur dans la preparation"); System.out.println("erreur dans la prise de resultat");
} }
cnx.close(); rs.close();
}catch(SQLException e){ }catch(SQLException e){
System.out.println("Erreur dans la connexion!"); System.out.println("erreur dans la préparation");
} }
}catch(ClassNotFoundException e){ pst.close();
System.out.println("pilote non disponible"); }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");
}
}
} }