Die Mondial-Datenbank enthält geographische Informationen über Städte, Länder, Berge, Flüsse und vieles mehr. Dieses Projekt soll die Datenbank bedienerfreundlich aufbereiteen.
Dazu entwickeln wir eine Anwendung, mit der man die Informationen zu geographischen Objekten anzeigen lassen kann und die es ermöglicht, zu verknüpften Objekten zu springen.
Das BlueJ-Projekt bluej-db-mondial enthält eine Vorlage.
Passe die Verbindungsinformationen in der Klasse Helper
im Paket datenklassen
an, so dass eine Verbindung zur SQLite-Datenbank mondial.db
hergestellt werden kann, die sich bereits im Unterordner datenklassen
befindet.
Die Datenbank selbst und die Beziehungen zwischen den Tabellen werden durch das Diagramm in der Datei Mondial.html
im Hauptverzeichnis des Projekts beschrieben.
Jedes Objekt in der Datenbank wird durch ein entsprechendes Java-Objekt repräsentiert- im folgenden Beispiel der Typ Berg. Das Java-Objekt enthält alle Informationen zum Datenbank-Objekt und bietet Methoden zum Auslesen an.
Alle Klassen erben von der abstrakten Klasse MondialObjekt
. Der Konstruktor jeder Unterklasse von MondialObjekt
erhält als einzigen Parameter die ID des Objekts als int. Alle weiteren Informationen zum Objekt werden in der Methode ladeDaten(Connection db)
geladen.
Der gegebene Programmrumpf kümmert sich bereits darum, dass die Objekte aus der Datenbank geladen werden.
Deine Aufgabe ist es, die Implementation der Methode ladeDaten(…)
zu vervollständigen. Sorge dafür, dass alle Attribute des Java-Objekts mit den entsprechenden Werten aus der Datenbank belegt werden. Du kannst in der Klasse Berg
nachschauen, wie das aussehen kann, diese ist bereits fertig implementiert.
Da es sich bei dieser Aufgabe um ein relativ aufwendiges Projekt handelt, bietet es sich an, dass mehrere Personen im Team zu arbeiten.
Verwende dazu die Teasmarbeitsfunktion von BlueJ:
.git
, wenn du das Projekt aus einem zipo-Archiv entpackt hast, musst du nichts weiter tun.Die einzelnen Objekttypen unterscheiden sich in ihrem Aufwand bzw. Schwierigkeitsgrad. Wählen Sie einen (oder mehrere) Objekttyp, der deiner Arbeitsgeschwindigkeit entspricht.
Hoher Aufwand | Mittlerer Aufwand | Geringer Aufwand |
Land, Fluss, Provinz, Stadt, See | Meer, Insel, Wueste, Organisation, Gebirge | Kontinent, Sprache, Religion, Volksgruppe, Inselgruppe |
Nun soll noch eine Volltextsuche durchgeführt werden, mit der man z.B. alle Objekte finden kann, deren Namen die Zeichenkette "ing" enthält. Implementiere dazu die Methode sucheObjekte()
in der Klasse Helper
im Unterordner datenklassen
.