2016-01-21 75 views
1

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

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

手动填充值ObservableList,他们可是我不知道如何从MySQL数据库获取数据并填充到观察的名单。

回答

3

为了从你的mysql数据库中获得一个List,打开一个到你的mysql数据库的数据库连接并执行你的查询。 (我不打算写这一个你,因为有足够的goodexamplesonline。)一旦你有你的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); 
+0

你能解释更多的位填充从数据库值到ObservableList?我是新来的JavaFX如何从数据库中获取列表到arraylist? –

+0

这个问题涉及到你的数据库,而不是javafx。你使用的是哪个数据库? – TangledUpInBlue

+0

我正在使用mysql数据库 –

0

这是用于填充Intoto公司一个的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(); 
      } 
     } 
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); 

有了这个,我们可以在javafx

相关问题