Java Bundesligaverwaltung?
Ich möchte ein Offline-Programm (ohne Verwendung einer Datenbank) in Java schreiben, in dem ich alle Spiele der deutschen Bundesliga verwalten kann. (einschließlich aller Spieler, Trainer, Mannschaften, Schiedsrichter, Spiele usw.). Ich möchte diese Daten in Textdateien speichern. Ich möchte die oben genannten Objekte als Klassen in Java darstellen. Habt ihr einen Tipp für mich oder könnt ihr mir da weiterhelfen? Dazu möchte ich des Weiteren eine passende graphische Oberfläche erstellen. Ich möchte von einer Oberklasse Person Eigenschaften in die Unterklassen Spieler, Trainer, Schiedsrichter, etc. ableiten, stelle mich dabei aber zu doof an. Ausserdem möchte ich Spielerstatiken (je Saison und gesamt) haben. Im GUI soll es des Weiteren 2 Mannschaften auswählen können und danach alle Paarungung dieser Mannschaften sehen. Ist das möglich effizient unzusetzen? Kann mir da wer helfen?
1 Antwort
Du könntest statt einer "Online" Datenbank auch einfach SQLite verwenden. Das ist einfach eine einzelne Datei, die du im selben Ordner wo du auch die .jar liegen hast, hinlegen kannst.
Eine Anleitung findest du unteranderem hier https://www.sqlitetutorial.net/sqlite-java/
Ich habe eher schlechte Erfahrung mit Text Dateien gemacht, insbesondere dann, wenn du Asynchron arbeitest, also aus verschiedene Threads heraus irgendwas veränderst. Willst du für jeden Spieler eine eigene Textdatei verwenden oder alle Spieler in eine Datei?
In der Regel sollte es sowieso so sein, das sobald sich irgendwas im Programm ändert, dies direkt in die Datei geschrieben werden muss, damit wenn das Programm abstürzt, diese Daten weiterhin vorhanden sind.
Dazu verwende ich eine Art Watchdog. Also ein Thread der überprüft, ob sich Daten verändert haben. Falls ja, werden diese umgehend gespeichert.
Eine Datenbank ist da viel einfacher. Du musst da auch sehr viel selbst schreiben. Insbesondere die Querries muss du da selbst machen. Es sei denn, du verwendet eine SQLite Bibliothek, die genau dafür gemacht ist. Aber das kommt ja für dich nicht in Frage, da du es ja selbst machen willst ;)
Du hast von einer Online Datenbank gesprochen. Deswegen habe ich dir eine Offline Datenbank gezeigt ;-)
Trotzdem möchte ich soviel wie möglich selbst machen