BaLahmuT
@BaLahmuT

Как сделать sql запрос из MySQL в TableView?

Нужно вывести данные из MySQL в TableView. Развернул Spring, сделал подключение к бд:
spring.datasource.url=jdbc:mysql://localhost:3306/usersdb?createDatabaseIfNotExist=true
spring.datasource.username=root
spring.datasource.password=pass
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update

server.port=8080

Настроил JavaFX, cделал модель таблицы:
public class ModelTable
{
    String id, login, password, surname, name;
    
    public ModelTable(String id, String login, String password, String surname, String name)
    {
        this.id = id;
        this.login = login;
        this.password = password;
        this.surname = surname;
        this.name = name;
    }
   //здесь сеттеры и геттеры
}

На основе модели сделал контроллер:
public class TableController implements Initializable
{
    @FXML
    private TableView<ModelTable> table;
    
    @FXML
    private TableColumn<ModelTable, String> userId;
    
    @FXML
    private TableColumn<ModelTable, String> userLogin;
    
    @FXML
    private TableColumn<ModelTable, String> userPass;
    
    @FXML
    private TableColumn<ModelTable, String> userSurname;
    
    @FXML
    private TableColumn<ModelTable, String> userName;
    
    ObservableList<ModelTable> list = FXCollections.observableArrayList();
    
    @Override
    public void initialize(URL location, ResourceBundle resources)
    {
        //id, login, password, surname, name
        userId.setCellValueFactory(new PropertyValueFactory<>("id"));
        userLogin.setCellValueFactory(new PropertyValueFactory<>("login"));
        userPass.setCellValueFactory(new PropertyValueFactory<>("password"));
        userSurname.setCellValueFactory(new PropertyValueFactory<>("surname"));
        userName.setCellValueFactory(new PropertyValueFactory<>("name"));

       //если правильно понял запрос должен быть здесь
    }
}

Подскажите как сделать запрос в бд?
  • Вопрос задан
  • 378 просмотров
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Добрый вечер.
Я бы попросил чуть конкретизировать ваш вопрос, ибо непонятны следующие моменты:
1) Является ли ваш проект клиент-серверным приложением? Если да, то правильно ли я понимаю, что у вас есть клиент - JavaFX и сервер - Spring Boot. Если так, то получается, что вы хотите из клиента выполнить запрос на сервер и получить данные хранимые в БД. В этом случае вам нужно на серверной стороне (в Spring) написать REST сервис. Например, контроллер, который обрабатывает GET запросы и возвращает соответствующие данные в формате json. Затем при успешном ответе ваш клиент (javaFX) парсит json и маппит в pojo. После чего он выводится в TableView.
Исходя из вышесказанного ответ на ваш вопрос:
Подскажите как сделать запрос в бд?

Вам необходимо:
- Написать REST сервис (не нужно из клиента обращаться напрямую в БД)
- Использовать библиотеку для выполнения запросов. Например, Retrofit

2) Если у вас приложение не клиент-серверное, а лишь JavaFX приложение, которое использует фреймворк Spring. Например, при помощи либы JavaFX Weaver
https://habr.com/ru/post/478402/
https://github.com/rgielen/javafx-weaver
То конечно же сторонний http клиент и вообще http клиент не нужен. Вы можете обратиться к БД написав методы для Repository и затем маппить их в dto (pojo) и выводить в таблице.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы