M
Matze678
Gast
Hallo,
ich programmiere gerade eine Swing-Applikation, die sich zu einer MySQL Datenbank verbindet und dem Benutzer ermöglicht Datensätze zu editieren. Dabei handelt es sich grob gesagt um personenbezogene Daten, die sich grob in die Kategorien "Mitglieder" und "Förderer" einteilen lassen. Dazu sind in der Datenbank zwei verschiedene Tabellen vorhanden.
Ich habe mir eine Datenbank-Klasse geschrieben, die alle datenbankbezogenen Aufgaben erledigt, d.h. Verbinden, Abfragen, usw. Weiterhin habe ich zwei Klassen geschrieben, die jeweils die verschiedenen Funktionen zum editieren von Mitgliedern und Förderern abwickeln.
Nun möchte ich, dass jede dieser beiden Klassen auf die selbe Instanz der Datenbankklasse zurückgreift, damit ich nicht mehrere offene Verbindungen habe. Frage: Wie mache ich das? Wenn ich die Datenbankinstanz in der Hauptklasse (dem JFrame) deklariere, dann ist sie in den beiden Klassen für Mitglieder und Förderer nicht bekannt. Da Java auch kein call-by-reference unterstützt, mit dem ich dann bspw. im Konstruktor der jeweiligen Klasse eine Referenz auf die Datenbank herstellen könnte, bin ich etwas auf verlorenem Posten. Zur Veranschaulichung noch mal etwas PseudoCode:
Wie gesagt könnte ich die Datenbank jeweils lokal in der jeweiligen Klasse (Mitglieder und Förderer) definieren, aber dann hätte ich ja automatisch zwei unterschiedliche Datenbankinstanzen, was ich eigentlich nicht möchte. Kann mir da jemand einen Tipp geben, wie man sowas am Besten löst?
Grüße, Matze
ich programmiere gerade eine Swing-Applikation, die sich zu einer MySQL Datenbank verbindet und dem Benutzer ermöglicht Datensätze zu editieren. Dabei handelt es sich grob gesagt um personenbezogene Daten, die sich grob in die Kategorien "Mitglieder" und "Förderer" einteilen lassen. Dazu sind in der Datenbank zwei verschiedene Tabellen vorhanden.
Ich habe mir eine Datenbank-Klasse geschrieben, die alle datenbankbezogenen Aufgaben erledigt, d.h. Verbinden, Abfragen, usw. Weiterhin habe ich zwei Klassen geschrieben, die jeweils die verschiedenen Funktionen zum editieren von Mitgliedern und Förderern abwickeln.
Nun möchte ich, dass jede dieser beiden Klassen auf die selbe Instanz der Datenbankklasse zurückgreift, damit ich nicht mehrere offene Verbindungen habe. Frage: Wie mache ich das? Wenn ich die Datenbankinstanz in der Hauptklasse (dem JFrame) deklariere, dann ist sie in den beiden Klassen für Mitglieder und Förderer nicht bekannt. Da Java auch kein call-by-reference unterstützt, mit dem ich dann bspw. im Konstruktor der jeweiligen Klasse eine Referenz auf die Datenbank herstellen könnte, bin ich etwas auf verlorenem Posten. Zur Veranschaulichung noch mal etwas PseudoCode:
Code:
class Main extends JFrame {
...
Datenbank db = new Datenbank();
...
}
class Mitglieder {
...
db.doQuery(query); // db nicht bekannt
...
}
class Förderer {
...
db.doQuery(query); // db nicht bekannt
}
Wie gesagt könnte ich die Datenbank jeweils lokal in der jeweiligen Klasse (Mitglieder und Förderer) definieren, aber dann hätte ich ja automatisch zwei unterschiedliche Datenbankinstanzen, was ich eigentlich nicht möchte. Kann mir da jemand einen Tipp geben, wie man sowas am Besten löst?
Grüße, Matze