diff --git a/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java b/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java index 39b1f20..b4d30ef 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java @@ -1,7 +1,9 @@ package de.uniluebeck.mi.projmi6.db; import de.uniluebeck.mi.projmi6.model.Patient; +import de.uniluebeck.mi.projmi6.model.Station; +import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; @@ -13,38 +15,83 @@ import java.util.List; */ public class DBHandler { - public static final String SELECT_ALL_PATIENTS = "SELECT * FROM `patient`"; + private static final String SELECT_ALL_PATIENTS = "SELECT * FROM `patient`"; + private static final String SELECT_PATIENT_BY_ID = "SELECT * FROM `patient` WHERE `id` = ?"; + private static final String UPDATE_PATIENT = "UPDATE `patient` SET `CAVE`=?, `Familienstand`=?, " + + "`Geburtsdatum`=?, `Geburtsname`=?, `Geschlecht`=?, `KassenID`=?, `LetzterBearbeiter`=?, `Nachname`=?, " + + "`Ort`=?, `PLZ`=?, `Strasse`=?, `Telefon`=?, `Versichertennummer`=?, `Vorname`=? WHERE `ID`=?"; + private static final String SELECT_ALL_STATIONEN = "SELECT * FROM `stammstation`"; public static List getAllPatients() throws SQLException { - Statement statement = null; - ResultSet rs = null; - statement = MySqlConnFactory.getConnection().createStatement(); - rs = statement.executeQuery(SELECT_ALL_PATIENTS); + Statement statement = MySqlConnFactory.getConnection().createStatement(); + ResultSet rs = statement.executeQuery(SELECT_ALL_PATIENTS); - List patients = new ArrayList(); + List patients = new ArrayList<>(); while (rs.next()) { - Patient patient = new Patient(); - patient.setPatID(rs.getInt("id")); - patient.setGeburtsname(rs.getString("geburtsname")); - patient.setVorname(rs.getString("vorname")); - patient.setNachname(rs.getString("nachname")); - patient.setGeburtsdatum(rs.getDate("geburtsdatum").toLocalDate()); - patient.setStrasse(rs.getString("strasse")); - patient.setHausnummer(rs.getString("hausnummer")); - patient.setPlz(rs.getString("plz")); - patient.setTelefon(rs.getString("telefon")); - // patient.setFamilienstand(rs.getString("familienstand")); - // patient.setGeschlecht(Patient.Geschlecht.valueOf(rs.getString("geschlecht"))); - patient.setVersichertennummer(rs.getString("versichertennummer")); - patient.setKassenID(rs.getInt("kassenid")); - patient.setErsteller(rs.getInt("ersteller")); - patient.setErstellDatumZeit(rs.getTimestamp("erstelldatum").toLocalDateTime()); - patient.setBearbeiter(rs.getInt("letzterbearbeiter")); - patient.setBearbeitetDatumZeit(rs.getTimestamp("letztesbearbeitungsdatum").toLocalDateTime()); - // add patient to resutl list - patients.add(patient); + patients.add(getPatient(rs)); } return patients; } + + public static Patient getPatient(int id) throws SQLException { + PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_PATIENT_BY_ID); + ResultSet rs; + statement.setInt(1, id); + rs = statement.executeQuery(); + + return getPatient(rs); + } + + public static Patient getPatient(ResultSet rs) throws SQLException { + Patient patient = new Patient(); + patient.setPatID(rs.getInt("id")); + patient.setGeburtsname(rs.getString("geburtsname")); + patient.setVorname(rs.getString("vorname")); + patient.setNachname(rs.getString("nachname")); + patient.setGeburtsdatum(rs.getDate("geburtsdatum").toLocalDate()); + patient.setStrasse(rs.getString("strasse")); + patient.setHausnummer(rs.getString("hausnummer")); + patient.setPlz(rs.getString("plz")); + patient.setTelefon(rs.getString("telefon")); + // patient.setFamilienstand(rs.getString("familienstand")); TODO + // patient.setGeschlecht(Patient.Geschlecht.valueOf(rs.getString("geschlecht"))); TODO + patient.setVersichertennummer(rs.getString("versichertennummer")); + patient.setKassenID(rs.getInt("kassenid")); + patient.setErsteller(rs.getInt("ersteller")); + patient.setErstellDatumZeit(rs.getTimestamp("erstelldatum").toLocalDateTime()); + patient.setBearbeiter(rs.getInt("letzterbearbeiter")); + patient.setBearbeitetDatumZeit(rs.getTimestamp("letztesbearbeitungsdatum").toLocalDateTime()); + return patient; + } + + public static void updatePatient(Patient patient) throws SQLException { + PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(UPDATE_PATIENT); + statement.setString(1, patient.getCave()); + statement.setString(2, patient.getFamilienstand().toString()); + } + + public static List getAllStationen() throws SQLException { + Statement statement = MySqlConnFactory.getConnection().createStatement(); + ResultSet rs = statement.executeQuery(SELECT_ALL_STATIONEN); + + List stationen = new ArrayList<>(); + while (rs.next()) { + stationen.add(getStation(rs)); + } + + return stationen; + } + + private static Station getStation(ResultSet rs) throws SQLException { + Station station = new Station(); + station.setStation(rs.getString("station")); + station.setBezeichnung(rs.getString("bezeichnung")); + station.setBezeichnungLang(rs.getString("bezeichnunglang")); + station.setStationstyp(rs.getInt("stationstyp")); + + return station; + } + + }