From 76f2ce493f550ff6c5c6faacbb1fb41a0bd41c9a Mon Sep 17 00:00:00 2001 From: Stefan Suhren Date: Wed, 13 Jan 2016 01:11:14 +0100 Subject: Persist ansprechpartner --- .../fhswf/in/inf/se/projektthemenvergabe/Main.java | 97 ++++++++++++++++++++++ 1 file changed, 97 insertions(+) (limited to 'src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java') 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 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) { -- cgit v1.2.3-70-g09d2