summaryrefslogtreecommitdiffstats
path: root/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java
diff options
context:
space:
mode:
authorStefan Suhren <suhren.stefan@fh-swf.de>2016-01-13 01:11:14 +0100
committerStefan Suhren <suhren.stefan@fh-swf.de>2016-01-13 02:02:22 +0100
commit76f2ce493f550ff6c5c6faacbb1fb41a0bd41c9a (patch)
treec75ef408997c0073b9a57d5bdffec044d9ecd27c /src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java
parent5c80d6cd7611efe24234f9f27a5b3751b21113a7 (diff)
downloadProjektthemenvergabe-76f2ce493f550ff6c5c6faacbb1fb41a0bd41c9a.tar.gz
Projektthemenvergabe-76f2ce493f550ff6c5c6faacbb1fb41a0bd41c9a.zip
Persist ansprechpartner
Diffstat (limited to 'src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java')
-rw-r--r--src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java97
1 files changed, 97 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 15d13c1..ceb0a6b 100644
--- a/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java
+++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java
@@ -470,6 +470,103 @@ public class Main extends Application
}
}
});
+
+ PreparedStatement deleteAnsprechpartner = dbConnection
+ .prepareStatement(
+ "DELETE FROM ansprechpartner WHERE vorname=? and nachname=?");
+ PreparedStatement addAnsprechpartner = dbConnection.prepareStatement(
+ "INSERT INTO ansprechpartner (vorname, nachname, organisation) VALUES (?, ?, ?)");
+ PreparedStatement updateAnsprechpartner = dbConnection
+ .prepareStatement(
+ "UPDATE ansprechpartner SET vorname=?,nachname=?,organisation=? WHERE vorname=? and nachname=?");
+
+ ansprechpartner.addListener((
+ ListChangeListener.Change<? extends Ansprechpartner> listener) -> {
+ while (listener.next())
+ {
+ if (listener.wasUpdated())
+ {
+ for (int i = listener.getFrom(); i < listener.getTo(); i++)
+ {
+ try
+ {
+ Ansprechpartner tmpAnsprechpartner = listener
+ .getList().get(i);
+
+ updateAnsprechpartner.setString(1,
+ tmpAnsprechpartner.getVorname());
+ updateAnsprechpartner.setString(2,
+ tmpAnsprechpartner.getNachname());
+
+ if (tmpAnsprechpartner.getOrganisation() != null)
+ {
+ updateAnsprechpartner.setString(3,
+ tmpAnsprechpartner.getOrganisation()
+ .getName());
+ }
+ else
+ {
+ updateAnsprechpartner.setString(3, null);
+ }
+
+ updateAnsprechpartner.setString(4,
+ tmpAnsprechpartner.getOldVorname());
+ updateAnsprechpartner.setString(5,
+ tmpAnsprechpartner.getOldNachname());
+
+ updateAnsprechpartner.execute();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+ else
+ {
+ for (Ansprechpartner removed : listener.getRemoved())
+ {
+ try
+ {
+ deleteAnsprechpartner.setString(1,
+ removed.getVorname());
+ deleteAnsprechpartner.setString(2,
+ removed.getNachname());
+
+ deleteAnsprechpartner.execute();
+ }
+ catch (SQLException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ for (Ansprechpartner added : listener.getAddedSubList())
+ {
+ try
+ {
+ addAnsprechpartner.setString(1, added.getVorname());
+ addAnsprechpartner.setString(2, added.getNachname());
+
+ if (added.getOrganisation() != null)
+ {
+ addAnsprechpartner.setString(3,
+ added.getOrganisation().getName());
+ }
+ else
+ {
+ addAnsprechpartner.setString(3, null);
+ }
+
+ addAnsprechpartner.execute();
+ }
+ catch (SQLException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+ });
}
catch (SQLException e)
{