Как передать данные из БД в таблицу TableView - Java

Узнай цену своей работы

Формулировка задачи:

Данный класс отвечает за соединение с БД
Листинг программы
  1. package util;
  2. import java.sql.*;
  3. public class DBUtil {
  4. public DBUtil() throws ClassNotFoundException {
  5. try {
  6. Class.forName("oracle.jdbc.OracleDriver");
  7. } catch (ClassNotFoundException e) {
  8. System.out.println(e.getMessage());
  9. }
  10. try {
  11. Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1203:xxit_d", "RU_SVC", "123456");
  12. } catch (SQLException e) {
  13. System.out.println(e.getMessage());
  14. }
  15. }
  16. }
Этот контроллер служит для заполнения TAbleView
Листинг программы
  1. package controller;
  2. import javafx.collections.FXCollections;
  3. import javafx.collections.ObservableList;
  4. import javafx.event.ActionEvent;
  5. import javafx.fxml.FXML;
  6. import javafx.fxml.Initializable;
  7. import javafx.scene.control.Button;
  8. import javafx.scene.control.MenuItem;
  9. import javafx.scene.control.TableColumn;
  10. import javafx.scene.control.TableView;
  11. import javafx.scene.control.cell.PropertyValueFactory;
  12. import javafx.stage.FileChooser;
  13. import javafx.stage.Window;
  14. import model.TableView_Head;
  15. import org.xml.sax.SAXException;
  16. import util.DBUtil;
  17. import javax.xml.parsers.ParserConfigurationException;
  18. import java.io.File;
  19. import java.io.IOException;
  20. import java.net.URL;
  21. import java.sql.Connection;
  22. import java.sql.ResultSet;
  23. import java.sql.SQLException;
  24. import java.sql.Statement;
  25. import java.util.ResourceBundle;
  26.  
  27. public class FXMLMainController implements Initializable, Cloneable {
  28. @FXML
  29. public MenuItem btnMenuAdd;
  30. @FXML
  31. public MenuItem Close;
  32. @FXML
  33. public MenuItem Help;
  34. @FXML
  35. public MenuItem About;
  36. @FXML
  37. public Button btnAddFile;
  38. @FXML
  39. public TableView <TableView_Head> TableView_Head;
  40. @FXML
  41. public TableColumn<TableView_Head, String> DateColumn;
  42. @FXML
  43. public TableColumn <TableView_Head, String> NameFileColumn;
  44. @FXML
  45. public TableColumn <TableView_Head, String> TypeFileColumn;
  46. @FXML
  47. public TableColumn <TableView_Head, String> StatusFileColumn;
  48. @FXML
  49. public Button btnExit;
  50. @FXML
  51. public Button btnSearchFile;
  52. public TableColumn tabFamiliya;
  53. public TableColumn tabFName;
  54. @FXML
  55. private Window primaryStage;
  56. private ObservableList<TableView_Head> AddData = FXCollections.observableArrayList();
  57. public FXMLMainController() throws ClassNotFoundException {
  58. }
  59. //Метод для добавления информации из таблицы БД
  60. private void DatabaseInfo() throws SQLException, ClassNotFoundException {}
  61. DBUtil db = new DBUtil();
  62.  
  63. //Метод initialize - Столбцы из БД
  64. public void initialize(URL location, ResourceBundle resources) {
  65. DateColumn.setCellValueFactory(new PropertyValueFactory<TableView_Head, String>("FDT"));
  66. NameFileColumn.setCellValueFactory(new PropertyValueFactory<TableView_Head, String>("FNAME"));
  67. TypeFileColumn.setCellValueFactory(new PropertyValueFactory<TableView_Head, String>("FTYPE"));
  68. StatusFileColumn.setCellValueFactory(new PropertyValueFactory<TableView_Head, String>("FSTATUS"));
  69. try {
  70. DatabaseInfo();
  71. } catch (SQLException | ClassNotFoundException e){
  72. e.printStackTrace();
  73. }
  74. }
  75.  
  76. //Обрабатываем кнопки
  77. public void handleButtonAction(ActionEvent actionEvent) throws ParserConfigurationException, IOException, SAXException {
  78. Object source = actionEvent.getSource();
  79. //Проверяем нажата ли кнопка, если нет то выходим из цикла
  80. if (!(source instanceof Button)) {
  81. return;
  82. }
  83. switch (((Button) source).getId()) {
  84. //Обрабатываем событие выбора файла
  85. case "btnAddFile": {
  86. FileChooser fileChooser = new FileChooser();
  87. //Задаем фильтр, чтоб пользователь видел только файлы с расширением xml
  88. FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("Файлы XML (*.xml)", "*.xml");
  89. fileChooser.setInitialDirectory(new File("C:/1/"));
  90. //Задаем имя для диалогового окна
  91. fileChooser.setTitle("Открыть файл для загрузки");
  92. fileChooser.getExtensionFilters().add(extFilter);
  93. //Открывам диалоговое окно
  94. File file = fileChooser.showOpenDialog(primaryStage);
  95. //Цикл если файл не выбран, то выход или начинаем парсить, запускаем класс XmlParser
  96. if (file != null) {
  97. System.out.println(file);
  98. XmlParser xmlParser = new XmlParser();
  99. xmlParser.parse(file.getPath());
  100. } else {
  101. System.out.println("Файл не выбран");
  102. }
  103. }
  104. break;
  105.  
  106. case "btnSearchFile": {
  107. System.out.println();
  108. }
  109. break;
  110.  
  111. case "btnExit": {
  112. System.exit(0);
  113. }
  114. break;
  115. }
  116. }
  117. public void Close() {
  118. }
  119. public void Help() {
  120. }
  121. public void About() {
  122. }
  123. }
Проблема в том что я не знаю как передать В контроллер соединение которое произошло в классе DBUtil и передать select в таблицу. Прошу помощи SOS, HELP

Решение задачи: «Как передать данные из БД в таблицу TableView»

textual
Листинг программы
  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <?import javafx.scene.control.TableColumn?>
  4. <?import javafx.scene.control.TableView?>
  5. <?import javafx.scene.layout.GridPane?>
  6.  
  7.  
  8. <GridPane alignment="center" hgap="10" vgap="10" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.111" fx:controller="sample.Controller">
  9.    <children>
  10.       <TableView fx:id="TableTest" prefHeight="200.0" prefWidth="200.0">
  11.         <columns>
  12.           <TableColumn fx:id="column1" maxWidth="-1.0" minWidth="-1.0" prefWidth="-1.0" text="C1" />
  13.         </columns>
  14.       </TableView>
  15.    </children>
  16. </GridPane>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут