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

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

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

Данный класс отвечает за соединение с БД
package util;
 
import java.sql.*;
 
public class DBUtil {
 
    public DBUtil() throws ClassNotFoundException {
 
        try {
            Class.forName("oracle.jdbc.OracleDriver");
        } catch (ClassNotFoundException e) {
            System.out.println(e.getMessage());
        }
        try {
            Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1203:xxit_d", "RU_SVC", "123456");
 
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        }
 
    }
}
Этот контроллер служит для заполнения TAbleView
package controller;
 
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.MenuItem;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.stage.FileChooser;
import javafx.stage.Window;
import model.TableView_Head;
import org.xml.sax.SAXException;
import util.DBUtil;
 
import javax.xml.parsers.ParserConfigurationException;
import java.io.File;
import java.io.IOException;
import java.net.URL;
 
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ResourceBundle;

public class FXMLMainController implements Initializable, Cloneable {
 
    @FXML
    public MenuItem btnMenuAdd;
    @FXML
    public MenuItem Close;
    @FXML
    public MenuItem Help;
    @FXML
    public MenuItem About;
    @FXML
    public Button btnAddFile;
    @FXML
    public TableView <TableView_Head> TableView_Head;
    @FXML
    public TableColumn<TableView_Head, String> DateColumn;
    @FXML
    public TableColumn <TableView_Head, String> NameFileColumn;
    @FXML
    public TableColumn <TableView_Head, String> TypeFileColumn;
    @FXML
    public TableColumn <TableView_Head, String> StatusFileColumn;
    @FXML
    public Button btnExit;
    @FXML
    public Button btnSearchFile;
 
    public TableColumn tabFamiliya;
 
    public TableColumn tabFName;
 
    @FXML
    private Window primaryStage;
 
    private ObservableList<TableView_Head> AddData = FXCollections.observableArrayList();
 
    public FXMLMainController() throws ClassNotFoundException {
    }
 
    //Метод для добавления информации из таблицы БД
    private void DatabaseInfo() throws SQLException, ClassNotFoundException {}
    DBUtil db = new DBUtil();

    //Метод initialize - Столбцы из БД
    public void initialize(URL location, ResourceBundle resources) {
        DateColumn.setCellValueFactory(new PropertyValueFactory<TableView_Head, String>("FDT"));
        NameFileColumn.setCellValueFactory(new PropertyValueFactory<TableView_Head, String>("FNAME"));
        TypeFileColumn.setCellValueFactory(new PropertyValueFactory<TableView_Head, String>("FTYPE"));
        StatusFileColumn.setCellValueFactory(new PropertyValueFactory<TableView_Head, String>("FSTATUS"));
            try {
                DatabaseInfo();
            } catch (SQLException | ClassNotFoundException e){
                e.printStackTrace();
            }
    }

        //Обрабатываем кнопки
    public void handleButtonAction(ActionEvent actionEvent) throws ParserConfigurationException, IOException, SAXException {
        Object source = actionEvent.getSource();
        //Проверяем нажата ли кнопка, если нет то выходим из цикла
        if (!(source instanceof Button)) {
            return;
        }
        switch (((Button) source).getId()) {
 
            //Обрабатываем событие выбора файла
            case "btnAddFile": {
                FileChooser fileChooser = new FileChooser();
                //Задаем фильтр, чтоб пользователь  видел только файлы с расширением xml
                FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("Файлы XML (*.xml)", "*.xml");
                fileChooser.setInitialDirectory(new File("C:/1/"));
 
                //Задаем имя для диалогового окна
                fileChooser.setTitle("Открыть файл для загрузки");
                fileChooser.getExtensionFilters().add(extFilter);
 
                //Открывам диалоговое окно
                File file = fileChooser.showOpenDialog(primaryStage);
 
                //Цикл если файл не выбран, то выход или начинаем парсить, запускаем класс XmlParser
                if (file != null) {
                    System.out.println(file);
                    XmlParser xmlParser = new XmlParser();
                    xmlParser.parse(file.getPath());
                } else {
                    System.out.println("Файл не выбран");
                }
            }
            break;

            case "btnSearchFile": {
                             System.out.println();
            }
            break;

            case "btnExit": {
                System.exit(0);
            }
            break;
        }
 
    }
 
    public void Close() {
 
    }
 
    public void Help() {
    }
 
    public void About() {
    }
}
Проблема в том что я не знаю как передать В контроллер соединение которое произошло в классе DBUtil и передать select в таблицу. Прошу помощи SOS, HELP

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

textual
Листинг программы
<?xml version="1.0" encoding="UTF-8"?>
 
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.layout.GridPane?>
 
 
<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">
   <children>
      <TableView fx:id="TableTest" prefHeight="200.0" prefWidth="200.0">
        <columns>
          <TableColumn fx:id="column1" maxWidth="-1.0" minWidth="-1.0" prefWidth="-1.0" text="C1" />
        </columns>
      </TableView>
   </children>
</GridPane>

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


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

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

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