Mysql
 sql >> Base de données >  >> RDS >> Mysql

javafx Tableview n'affiche pas les données de la base de données

Dans getRoom.rmview méthode que vous remplissez assignez les champs du rmview instance encore et encore, mais vous ne modifiez jamais la roomlist de rmview n'est jamais modifié ; il reste vide. Depuis que vous utilisez roomlist dans le TableView , il n'y a aucune donnée à afficher.

Vous devriez plutôt ajouter un nouvel élément pour chaque ligne renvoyée par la requête de base de données :

// 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)));
}

De plus, je recommande de respecter les conventions de dénomination . Surtout la partie sur les abréviations car cela rend votre code difficile à lire pour les autres. De plus object est un mauvais choix comme nom pour un paramètre de type. Cela prête à confusion et généralement des lettres majuscules simples sont utilisées pour les paramètres de type.

Aussi le but de la rmlist la classe n'est pas claire. Il contient les mêmes champs que ListRoom , mais contient également une liste où vous souhaitez que les données soient réellement stockées. Pourquoi avez-vous besoin de ces champs ? Avez-vous besoin de rmlist du tout ou pourrait-il simplement être remplacé par ObservableList<ListRoom> ?