/* 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();
   }
 }