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; import java.util.ArrayList; import java.util.List; /** * Created by nils on 15.11.2015. */ public class DBHandler { 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 = MySqlConnFactory.getConnection().createStatement(); ResultSet rs = statement.executeQuery(SELECT_ALL_PATIENTS); List patients = new ArrayList<>(); while (rs.next()) { 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); } private 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; } }