将数据库中的值填充到javafx中的ObservableList中

时间:2016-01-21 16:13:34

标签: java database javafx

如何正确地将值从mysql数据库填充到javafx中的observableList?我正在使用:

ObservableList<String> deptList=FXCollections.observableArrayList("CSE","ME");

手动将值填充到observablelist,但我不知道如何从mysql数据库中获取数据并填充到observable列表中。

3 个答案:

答案 0 :(得分:3)

要从mysql数据库获取List,请打开与mysql数据库的数据库连接并执行查询。 (我不打算为你写这个,因为有很多good examples online。)一旦你有了ResultSet:

List<String> listOfSomething;
ResultSet rs = statement.executeQuery(query);
while (rs.next()) {
    String current = rs.getString("whatever");
    listOfSomething.add(current);
}

您可以从数据库中获取列表并将其转换为可观察列表:

List listOfSomething = new ArrayList(ofWhatever);
ObservableList<String> observableListOfSomething = FXCollections.observableArrayList(listOfSomething);

答案 1 :(得分:0)

这是用于在 ListView(JavaFX(fxml))中填充数据的代码。

 private void populateListView {
            try {
                String query = "select * from main_table";
                PreparedStatement prestate = model.getConnection().prepareStatement(query);
                ResultSet result = prestate.executeQuery();

                while (result.next()) {
                    String current = result.getString("title");
                    ObservableList<String> list = FXCollections.observableArrayList(current);
                    listview.getItems().addAll(list);
                }

                prestate.close();
                result.close();     
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }

答案 2 :(得分:0)

谢谢。这篇文章中提到的答案也适用于我的案例。 我使用postgres作为数据库。

创建表格视图

@FXML private TableView<AccountMaster> detailstable;

我从数据库中获取详细信息并将其存储在通用列表中。

List<Student> list = DatabaseClient.getInstance().studentDetailsSearch(id,name);

创建可观察的泛型类型列表,然后在可观察列表中设置列表值。

ObservableList<AccountMaster> searchDetailsList = FXCollections.observableArrayList(list );

在表格视图中设置

detailstable.getItems().addAll(searchDetailsList); 

有了这个,我们可以将数据库中的值填充到ObservableList

中的javafx