Oracle Datenbank-Tabelle per Combobox (oder ähnliches) auswählen

Hallo Leute,
erstmal vorweg. Das ist mein erster Post in diesem Forum daher weiß ich nicht ob ich im richtigen Bereich bin. Außerdem bin ich noch ein Anfänger, was Java angeht. Ich versuche dennoch so detailliert wie möglich auf mein Problem einzugehen. Nach langer Recherche konnte ich darauf keine Antwort finden. Kommen wir aber zum Wesentlichen: Worum geht es?

Ich schreibe gerade an einem Programm welches die Spalten samt Daten aus einer Microsoft Server 2012 Datenbank ausgibt in einem TableView. (Siehe Bild).

Auto Beispiel.PNG

Soweit so gut. Jetzt möchte ich aber gerne die Tabelle innerhalb meines Programms ändern können z.B. per ComboBox oder mit irgendwas anderem. In der Datenbank gibt es zwei Tabellen "Auto" und "Bier". Momentan muss ich immer das SQL Statement im Code anpassen. Entweder "SELECT * FROM Auto" oder zu "SELECT * FROM Bier". Im späteren Programm wird das dann logischerweise nicht mehr möglich sein, was ein Problem darstellt. Ich würde gerne wissen, wie ich am besten vorgehe, wenn ich beispielsweise eine ComboBox haben möchte mit der ich mir meine gewünschte Tabelle aussuche.

Bevor ich irgendwelchen Code hier reinstelle, würde ich lieber wissen, wie man vorgehen könnte. Es könnte natürlich sein, dass ich meinen kompletten Code ändern müsste. Außerdem wäre eine allgemeinere Lösung für alle Beteilligten vorteilhafter.

MFG
euer Java_Noob
 
Zuletzt bearbeitet:
Naja, du müsstest über einen Handler feststellen, ob in JavaFX die Combobox geändert wurde und dann einen Zustand ändern.

String tableName = "Auto";

javafx-handler-setzt-tabellenname-um-wenn-bier-oder-auto-ausgwählt-wird.

Jetzt muss man den Tabellennamen in das SQL einbauen:

String sql = "SELECT * FROM " + tableName;
 
Naja, du müsstest über einen Handler feststellen, ob in JavaFX die Combobox geändert wurde und dann einen Zustand ändern.

String tableName = "Auto";

javafx-handler-setzt-tabellenname-um-wenn-bier-oder-auto-ausgwählt-wird.

Jetzt muss man den Tabellennamen in das SQL einbauen:

String sql = "SELECT * FROM " + tableName;
Ich habe einen Dummy gebaut, der genau das macht. Das Problem an der Sache ist aber, was wenn ich mehr Tabellen hinzufüge? Bei 2 Tabellen klappt das ja noch ganz gut aber was wenn ich hunderte habe? Ich bin generell gegen "hardcoden" und bevorzuge eher den "anpassungsfähigen" Weg.
 
Da der SQL-Befehl dynamisch aufgebaut wird, ist das der anpassungsfähige Weg. Du kannst auch Objekte verwenden, die neben dem Namen, der dann z. B. in der ComboBox angezeigt wird, auch den SELECT enthalten. Auch eine Map wäre möglich. Selbst in der DB könntest Du den Spaß speichern. Möglichkeiten gibt es also viele.
 

Neue Themen


Zurück
Oben