summaryrefslogtreecommitdiffstats
path: root/src/de/fhswf/in/inf
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/fhswf/in/inf')
-rw-r--r--src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java73
-rw-r--r--src/de/fhswf/in/inf/se/projektthemenvergabe/model/Student.java15
2 files changed, 88 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 ceb0a6b..a7d2ceb 100644
--- a/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java
+++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java
@@ -567,6 +567,79 @@ public class Main extends Application
}
}
});
+
+ PreparedStatement deleteStudent = dbConnection.prepareStatement(
+ "DELETE FROM student WHERE matrikelnummer=?");
+ PreparedStatement addStudent = dbConnection.prepareStatement(
+ "INSERT INTO student (matrikelnummer, vorname, nachname) VALUES (?, ?, ?)");
+ PreparedStatement updateStudent = dbConnection.prepareStatement(
+ "UPDATE student SET matrikelnummer=?,vorname=?,nachname=? WHERE matrikelnummer=?");
+
+ studenten.addListener(
+ (ListChangeListener.Change<? extends Student> listener) -> {
+ while (listener.next())
+ {
+ if (listener.wasUpdated())
+ {
+ for (int i = listener.getFrom(); i < listener
+ .getTo(); i++)
+ {
+ try
+ {
+ Student tmpStudent = listener.getList().get(i);
+
+ updateStudent.setInt(1,
+ tmpStudent.getMatrikelnummer());
+ updateStudent.setString(2,
+ tmpStudent.getVorname());
+ updateStudent.setString(3,
+ tmpStudent.getNachname());
+
+ updateStudent.setInt(4,
+ tmpStudent.getOldMatrikelnummer());
+
+ updateStudent.execute();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+ else
+ {
+ for (Student removed : listener.getRemoved())
+ {
+ try
+ {
+ deleteStudent.setInt(1,
+ removed.getMatrikelnummer());
+
+ deleteStudent.execute();
+ }
+ catch (SQLException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ for (Student added : listener.getAddedSubList())
+ {
+ try
+ {
+ addStudent.setInt(1, added.getMatrikelnummer());
+ addStudent.setString(2, added.getVorname());
+ addStudent.setString(3, added.getNachname());
+
+ addStudent.execute();
+ }
+ catch (SQLException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+ });
}
catch (SQLException e)
{
diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Student.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Student.java
index 89c80bb..32ee802 100644
--- a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Student.java
+++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Student.java
@@ -26,6 +26,8 @@ public class Student
private ObjectProperty<Projekt> projekt = new SimpleObjectProperty<>();
+ private int oldMatrikelnummer = 0;
+
/**
* Generates an extractor that fires when a property of a list value
* changes.
@@ -48,6 +50,7 @@ public class Student
public Student(int matrikelnummer)
{
this.matrikelnummer.set(matrikelnummer);
+ oldMatrikelnummer = matrikelnummer;
}
/**
@@ -220,4 +223,16 @@ public class Student
return ((Student) obj).matrikelnummer.get() == matrikelnummer.get();
}
+
+ /**
+ * Get the previous matrikel number of this Student.
+ *
+ */
+ public int getOldMatrikelnummer()
+ {
+ int tmp = oldMatrikelnummer;
+ oldMatrikelnummer = matrikelnummer.get();
+
+ return tmp;
+ }
} \ No newline at end of file