Как связать поля из SQLite c textaria и labels в JavaFX?

132
20 июля 2019, 08:50

Пишу программу на JavaFX И Scene Builder. В качестве базы данных использую SQLite.Для просмотра базы данных использую DB Browser

В SQLite есть 3 поля: ID, question, answer

Поле ID с автоинкрементом. Я ничего там не прописываю, номера автоматически проставляются.

В окне программы, если я нажимаю на кнопку "Add", то вызывается метод, который отправляет текст из TextAria в поле question SQLite, и текст из второго Textaria также отправляется, но уже в другое поле answer SQLite

Я благополучно отправляю данные из textaria в SQLite, создаются новые поля с id в SQLite, но я не понимаю как взять например текст из конкретного поля с конкретным id и применить этот текст к textaria в программе.

Как получить текст из конкретного поля с конкретным id из SQLite и применить к лейблу или textaria?

Как получить все существующие номера из поля ID SQLite и вывести их в combobox?

Если я выберу номер из combobox, то:

Как применить текст,который связан с этим номером. в текстовое поле программы?

QuestController:

package card;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import javafx.scene.control.TextArea;
import java.net.URL;
import java.sql.*;
import java.util.ResourceBundle;


public class QuestController implements Initializable {
  @FXML  private TextArea ta_questText, ta_answerText;
  @FXML  private Label lb_numberQuest;
  @FXML
  private ComboBox<?> idQuest;
  @Override
  public void initialize(URL location, ResourceBundle resources) {
    //register QuestController in  Context Class
    Context.getInstance().setQuestController(this);
  }
  @FXML
  void addCard(ActionEvent event) {
    PreparedStatement preparedStatement;
    ResultSet resultSet;
    String query = "select * from Cards where ID  = ? and question = ? and 
answer = ?";
Connection connection = DbConnection.getInstance().getConnection();

    try {
  String question = ta_questText.getText();
  String answer = ta_answerText.getText();
  Statement statement = connection.createStatement();
  int status = statement.executeUpdate("insert into Cards (question, 
 answer) values ('"+question+"','"+answer+"')");
  if (status > 0) {
    System.out.println("question registered");
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }
}

DbConnection class:

package card;
import org.sqlite.SQLiteConnection;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DbConnection {
  private DbConnection() {
  }
  public static DbConnection getInstance() {
   return new DbConnection();
 }
  public Connection getConnection() {

    String connect_string = "jdbc:sqlite:database.db";
    Connection connection = null;
    try {
  Class.forName("org.sqlite.JDBC");
   connection = DriverManager.getConnection("jdbc:sqlite:database.db");
} catch (SQLException e) {
  e.printStackTrace();
} catch (ClassNotFoundException e) {
  e.printStackTrace();
     }
     return connection;
  }
}
READ ALSO
JavaFX вращение контрола мышью вокруг своего центра

JavaFX вращение контрола мышью вокруг своего центра

Собственно, весь вопрос поставлен в заголовкеОднако, при вращении обнаружены некоторые баги

129
Документация по классам java в стиле man

Документация по классам java в стиле man

Есть ли такая утилита как man в Линуксе, чтобы можно было читать мануал по классам(например Thread)

118
Ссылка, размещенная внутри метода(Java)

Ссылка, размещенная внутри метода(Java)

Такая ситуация: существует условный метод play(), в котором помимо основного кода создаётся объект с помощью ссылочной переменнойВопрос заключается...

163
Метод setPaint класса Graphics2d

Метод setPaint класса Graphics2d

Пожалуйста, опишите, для чего нужен метод setPaint() класса Graphics2d и какие он использует аргументы

129