/* d1 untere Grenze, d2 obere Grenze */ @Override public ArrayList<Anruf> getAnrufe(Telefon anrufer, Telefon angerufener, Long d1, Long d2) { ArrayList<Anruf> list = new ArrayList<>(); /* Fall2 */ try (Statement stmt = c.createStatement()) { ResultSet rs = null; if (anrufer != null && angerufener == null && d1 != null && d2 != null) { rs = stmt.executeQuery( "SELECT a.id_anrufer, a.id_angerufener, dauer, datum " + "FROM Anruf a " + "WHERE a.id_anrufer = '" + anrufer.toString() + "' " + "AND a.datum > " + d1.longValue() + " " + "AND a.datum < " + d2.longValue()); /* Fall4 */ } else if (anrufer != null && angerufener == null && d1 == null && d2 == null) { rs = stmt.executeQuery( "SELECT a.id_anrufer as Anrufer, a.id_angerufener as Angerufener, dauer, datum " + "FROM Anruf a " + "WHERE a.id_anrufer = '" + anrufer.toString() + "'"); } else if (anrufer == null && angerufener != null && d1 == null && d2 == null) { rs = stmt.executeQuery( "SELECT a.id_anrufer as Anrufer, a.id_angerufener as Angerufener, dauer, datum " + "FROM Anruf a " + "WHERE a.id_angerufener = '" + angerufener.toString() + "'"); } else { throw new RuntimeException("TODO"); } while (rs.next()) { if (anrufer != null) { list.add(new Anruf(anrufer, new Telefon(rs.getString(2)), rs.getLong(4), rs.getInt(3))); } else { list.add( new Anruf(new Telefon(rs.getString(1)), angerufener, rs.getLong(4), rs.getInt(3))); } } rs.close(); } catch (SQLException e) { e.printStackTrace(); } return list; }
@Override public void storeKunden(Kunde[] kunden) { try (PreparedStatement ps = c.prepareStatement("INSERT INTO Kunde (vorname, nachname) VALUES (?, ?)")) { for (Kunde k : kunden) { ps.setString(1, k.getVorname()); ps.setString(2, k.getNachname()); ps.execute(); try (PreparedStatement ps2 = c.prepareStatement( "INSERT INTO Telefon (nummer, id_kunde)" + "VALUES (?, (SELECT TOP 1 id FROM Kunde ORDER BY id DESC))")) { for (Telefon t : k.getTelefone()) { ps2.setString(1, t.toString()); ps2.addBatch(); } ps2.executeBatch(); } } } catch (SQLException e) { e.printStackTrace(); } }