diff options
Diffstat (limited to 'src/de/fhswf/in/inf/se/projektthemenvergabe')
| -rw-r--r-- | src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java index 53bcd7f..4caaa35 100644 --- a/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java +++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java @@ -3,6 +3,12 @@ */ package de.fhswf.in.inf.se.projektthemenvergabe; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.HashMap; + import de.fhswf.in.inf.se.projektthemenvergabe.model.Ansprechpartner; import de.fhswf.in.inf.se.projektthemenvergabe.model.Organisation; import de.fhswf.in.inf.se.projektthemenvergabe.model.Projekt; @@ -12,6 +18,7 @@ import de.fhswf.in.inf.se.projektthemenvergabe.view.ProjektHinzufuegenController import de.fhswf.in.inf.se.projektthemenvergabe.view.ProjektthemenverwaltungsController; import de.fhswf.in.inf.se.projektthemenvergabe.view.StudentenverwaltungsController; import javafx.application.Application; +import javafx.application.Platform; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.fxml.FXMLLoader; @@ -48,6 +55,8 @@ public class Main extends Application private Stage projekthinzufuegenStage; + private Connection dbConnection; + /* * (non-Javadoc) * @@ -56,6 +65,8 @@ public class Main extends Application @Override public void start(Stage primaryStage) throws Exception { + loadData(); + this.primaryStage = primaryStage; try @@ -273,4 +284,118 @@ public class Main extends Application { launch(args); } + + /** + * Load Data on launch from database. + * + */ + private void loadData() + { + try + { + Class.forName("com.mysql.jdbc.Driver").newInstance(); + dbConnection = DriverManager + .getConnection("jdbc:mysql://localhost/projekte", "root", ""); + + ansprechpartner.clear(); + organisation.clear(); + + HashMap<String, Organisation> orgaHash = new HashMap<>(); + HashMap<String, HashMap<String, Ansprechpartner>> anspHash = new HashMap<>(); + HashMap<Integer, Student> studHash = new HashMap<>(); + + ResultSet rs = dbConnection.createStatement() + .executeQuery("SELECT * from organisation"); + while (rs.next()) + { + Organisation organisation = new Organisation( + rs.getString("name")); + + orgaHash.put(organisation.getName(), organisation); + } + + rs = dbConnection.createStatement() + .executeQuery("SELECT * from ansprechpartner"); + while (rs.next()) + { + Organisation organisation = orgaHash + .get(rs.getString("organisation")); + + Ansprechpartner ansprechpartner = new Ansprechpartner( + organisation, rs.getString("vorname"), + rs.getString("nachname")); + + HashMap<String, Ansprechpartner> tmpHashMap = new HashMap<>(); + + tmpHashMap.put(ansprechpartner.getNachname(), ansprechpartner); + + tmpHashMap = anspHash.putIfAbsent(ansprechpartner.getVorname(), + tmpHashMap); + if (tmpHashMap != null) + { + tmpHashMap.put(ansprechpartner.getNachname(), ansprechpartner); + } + } + + rs = dbConnection.createStatement() + .executeQuery("SELECT * from student"); + while (rs.next()) + { + Student student = new Student(rs.getInt("matrikelnummer")); + + student.setVorname(rs.getString("vorname")); + student.setNachname(rs.getString("nachname")); + + studHash.put(student.getMatrikelnummer(), student); + } + + rs = dbConnection.createStatement() + .executeQuery("SELECT * from projekt"); + while (rs.next()) + { + Ansprechpartner ansprechpartner = null; + + if (rs.getString("ansprechpartnerVorname") != null + && rs.getString("ansprechpartnerNachname") != null) + { + ansprechpartner = anspHash + .get(rs.getString("ansprechpartnerVorname")) + .get(rs.getString("ansprechpartnerNachname")); + } + + Student student1 = studHash.get(rs.getInt("student1")); + Student student2 = studHash.get(rs.getInt("student2")); + Student student3 = studHash.get(rs.getInt("student3")); + + Projekt projekt = new Projekt(rs.getString("projektthema"), + student1, student2, student3, ansprechpartner); + + projekt.setSkizze(rs.getString("skizze")); + projekt.setProjektbeschreibung( + rs.getString("projektbeschreibung")); + projekt.setProjekteinhalte(rs.getString("projektinhalte")); + projekt.setStatus( + Projekt.StatusTypes.valueOf(rs.getString("status"))); + projekt.setDozentenkommentar(rs.getString("dozentenkommentar")); + + this.projekte.add(projekt); + } + + organisation.addAll(orgaHash.values()); + for (HashMap<String, Ansprechpartner> hashs : anspHash.values()) + { + ansprechpartner.addAll(hashs.values()); + } + studenten.addAll(studHash.values()); + } + catch (SQLException | InstantiationException | IllegalAccessException | + + ClassNotFoundException e) + + { + e.printStackTrace(); + Platform.exit(); + } + + } } |
