2016-01-21 77 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

相關問題