Как передать данные из БД в таблицу TableView - Java
Формулировка задачи:
Данный класс отвечает за соединение с БД
Этот контроллер служит для заполнения TAbleView
Проблема в том что я не знаю как передать В контроллер соединение которое произошло в классе DBUtil и передать select в таблицу.
Прошу помощи SOS, HELP
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());
}
}
}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() {
}
}Решение задачи: «Как передать данные из БД в таблицу 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>