2016-01-21 3 views
1

Как я могу правильно заполнить значения из базы данных mysql для наблюдаемого списка в javafx? Я использую:заполняет значения из базы данных в ObservableList в javafx

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

вручную заполнить значения observablelist, но я не знаю, как извлекать данные из базы данных MySQL и заполним в наблюдаемый список.

ответ

3

Чтобы получить список из базы данных mysql, откройте подключение базы данных к базе данных 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

вы можете объяснить немного больше? Я новичок в 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); 

С этим можно заполнить значения из базы данных в ObservableList в javafx

Смежные вопросы