Auf Thema antworten

Irgendwie schreiben wir aneinander vorbei: wir schreiben doch die ganze Zeit von den Stationen :)



Du speicherst die Stationen nicht in einem Feld sondern so, wie ich es oben dargestellt habe: zu jeder Leistung gibt es eine Liste (=Datensätze einer Tabelle) mit Stationen. Das wäre zumindest die normalisierte Form.


Um dann die Stationen zu einer Leistung abzurufen, brauchst Du lediglich einen SELECT.


Wenn Du die Daten unbedingt nicht normalisiert speichern willst, dann kannst Du im einfachsten Fall den String per ResultSet#getString() aus der DB laden und per String#split() wieder aufteilen. Das funktioniert natürlich nur, wenn sichergestellt ist, dass das Trennzeichen in den Stationen nicht auftreten kann. Ansonsten müsstest Du größere Geschütze auffahren.



Du iterierst in einer Schleife über die Tage im Zeitraum und erzeugst für jeden Tag jeweils einen Satz.


[code=Java]

LocalDate start = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

LocalDate end = endDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();


for (LocalDate date = start; !date.isAfter(end); date = date.plusDays(1)) {

    preparedStatement.setDate(1, java.sql.Date.valueOf(date));

    preparedStatement.setDate(2, ...);

    // ...

    preparedStatement.addBatch();

}

preparedStatement.executeBatch();

[/code]



Oben