Tagebuch
In diesem Projekt soll ein "Tagebuch"-Programm erstellt werden. Eine BlueJ-Vorlage findest du hier: https://codeberg.org/info-bw-wiki/blue-db-tagebuch
Das Programm hat eine GUI, um es zu starten musst du die Java FX Application TagebuchApp
starten.
Implementiere das Auslesen und Eintragen von Tagebucheinträgen an den Stellen in der Klasse Tagebucheintrag
, die mit "TODO" markiert sind.
Hinweise:
(1) Das Attribut zeitstempel
der Klasse Tagebucheintrag
hat den Datentyp Timestamp
und gibt den Zeitpunkt an, zu dem der Eintrag in die Datenbank eingefügt wurde. Die Datenbank setzt diesen Wert (Spalte datum
) beim Anlegen des Datensatzes automatisch auf die aktuelle Zeit. Beim Auslesen kann man diesen Wert mit der Methode getTimestamp
aus dem ResultSet
holen.
(2) Der "Speichern"-Button ist nur klickbar, wenn sowohl Überschrift als auch Inhalt einen Text enthalten. Beim Speichern wird ein neues Tagebucheintrag-Objekt erzeugt und in die Tabelle links eingefügt. Beim Erzeugen eines neuen Eintrags mittels des Konstruktors sind die Attribute ID und zeitstempel noch nicht gesetzt, sondern sollen erst durch das Speichern in der Datenbank Werte erhalten.
(3) Datensätze einfügen
INSERT INTO myTable (spalte1, spalte2) VALUES ('Hallo', 17)
(4) Holen von neu eingefügten Primärschlüsseln:
PreparedStatement ps = conn.prepareStatement( "INSERT INTO mytable (zahl, text) VALUES (17, 'Hallo')", PreparedStatement.RETURN_GENERATED_KEYS); ps.execute(); ResultSet rs = ps.getGeneratedKeys(); rs.next(); int neueId = rs.getInt(1);
Weitere Ideen (zum knobeln)
Untersuche die programmatische Konstruktion der GUI.
- Versuche einen weiteren Knopf zu platzieren, mit dem man einen Eintrag löschen kann. Ergänze entsprechende Methoden, welche die Datenbankoperation ausführen.
- Versuche einen weiteren Knopf zu platzieren, mit dem man einen Eintrag editieren kann. Sorge dafür dass das Textfeld bei der Anzeige eines Eintrags editierbar ist und ergänze eine entsprechende Methode, die die Datenbank aktualisiert.