Mysql
 sql >> Datenbank >  >> RDS >> Mysql

javafx Tableview zeigt keine Daten aus der Datenbank an

In der getRoom.rmview Methode füllen Sie die Felder der rmview zu Instanz immer wieder, aber Sie ändern nie die roomlist von rmview wird nie geändert; es bleibt leer. Da Sie roomlist verwenden in der TableView , es gibt keine anzuzeigenden Daten.

Sie sollten stattdessen für jede Zeile, die die Datenbankabfrage zurückgibt, ein neues Element hinzufügen:

// remove data previously in the list
rmList.roomlist.clear();

while (rs.next()){
    rmList.roomlist.add(new ListRoom(rs.getString(1),
                                     rs.getString(2),
                                     rs.getString(3),
                                     rs.getString(4),
                                     rs.getString(5)));
}

Außerdem empfehle ich, sich an die Namenskonventionen zu halten . Besonders der Teil über Abkürzungen, da dies Ihren Code für andere schwer lesbar macht. Weiterhin object ist eine schlechte Wahl als Name für einen Typparameter. Es führt zu Verwirrung und normalerweise werden für Typparameter einzelne Großbuchstaben verwendet.

Auch der Zweck der rmlist Klasse ist unklar. Es enthält dieselben Felder wie ListRoom , enthält aber auch eine Liste, wo die Daten tatsächlich gespeichert werden sollen. Warum brauchen Sie diese Felder? Benötigen Sie rmlist überhaupt oder könnte es einfach durch ObservableList<ListRoom> ersetzt werden ?