Geoinformationsdaten

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.

Zusammenarbeit mit Git

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:

Hinweise

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

Ergänzung

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.