Baza danych a javaFX

0

Witam

Po długich męczarniach utworzyłem swoją pierwszą aplikacje.
Został mi ostatni krok czyli podpięcie bazy danych.
Stworzyłem aplikacje deskopową lecz jak utworzę plik exe po edycji danych w tabeli nie zapisują się bo jak wiadomo trzeba podpiąć bazę danych.
Nie chce korzystać z MySQL ponieważ ten plik będzie używany u mnie w firmie na potrzeby własne - czyli w grę wchodzi podpięcie bazy pod plik w projekcie.

Może ktoś pomóc w tym temacie ponieważ większość tematów w internecie jest odnośnie MySQL.

Poniżej kody gdzie zostaną zapisywane dane:

package sample.Controllers;

import javafx.application.Platform;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.*;
import javafx.scene.control.cell.PropertyValueFactory;
import sample.Utils.StopLista;

import java.net.URL;
import java.util.ResourceBundle;


public class StopController implements Initializable {


    @FXML
    private TableView<StopLista> tableView;
    @FXML
    private TableColumn<StopLista, String> dateColumn;
    @FXML
    private TableColumn<StopLista, String> orderColumn;
    @FXML
    private TableColumn<StopLista, String> modelColumn;
    @FXML
    private TableColumn<StopLista, String> changeColumn;
    @FXML
    private TableColumn<StopLista, String> timeColumn;
    @FXML
    private TableColumn<StopLista, String> personColumn;
    @FXML
    private TableColumn<StopLista, String> commentsColumn;


    @FXML
    TextField dateText;
    @FXML
    TextField orderText;
    @FXML
    TextField modelText;
    @FXML
    TextField changeText;
    @FXML
    TextField timeText;
    @FXML
    TextField personText;
    @FXML
    TextField commentsText;


    @Override
    public void initialize(URL location, ResourceBundle resources) {
        dateColumn.setCellValueFactory(new PropertyValueFactory<StopLista, String>("data"));
        orderColumn.setCellValueFactory(new PropertyValueFactory<StopLista, String>("zlecenie"));
        modelColumn.setCellValueFactory(new PropertyValueFactory<StopLista, String>("model"));
        changeColumn.setCellValueFactory(new PropertyValueFactory<StopLista, String>("zmiana"));
        timeColumn.setCellValueFactory(new PropertyValueFactory<StopLista, String>("czas"));
        personColumn.setCellValueFactory(new PropertyValueFactory<StopLista, String>("osoba"));
        commentsColumn.setCellValueFactory(new PropertyValueFactory<StopLista, String>("uwagi"));
        tableView.setItems(addList());

    }

    public void addRowToTablem() {
        StopLista nowyRekord = new StopLista(dateText.getText(), orderText.getText(), modelText.getText(),
                changeText.getText(), timeText.getText(), personText.getText(), commentsText.getText());
        tableView.getItems().add(nowyRekord);
        dateText.clear();
        orderText.clear();
        modelText.clear();
        changeText.clear();
        timeText.clear();
        personText.clear();
        commentsText.clear();
    }

    public void delateRowTable() {
        ObservableList<StopLista> wybranyRekord, wszystkieRekordy;
        try {
            wszystkieRekordy = tableView.getItems();
            if (wszystkieRekordy.size() != 0) {
                wybranyRekord = tableView.getSelectionModel().getSelectedItems();
                wybranyRekord.forEach(wszystkieRekordy::remove);
            }
        } catch (Exception e) {
            //tabela jest pusta - nic się nie dzieje
        }

    }

    public ObservableList<StopLista> addList() {
        ObservableList<StopLista> orderList = FXCollections.observableArrayList();
        return orderList;
    }

    public static void closeProgram() {
        Platform.exit();
        System.exit(0);
    }


}

utils:

package sample.Utils;

import javafx.beans.property.SimpleStringProperty;

public class StopLista {

    private SimpleStringProperty data, zlecenie, model, zmiana, czas, osoba, uwagi;

    public StopLista(String data, String zlecenie, String model,
                     String zmiana, String czas, String osoba,
                     String uwagi) {
        this.data = new SimpleStringProperty(data);
        this.zlecenie = new SimpleStringProperty(zlecenie);
        this.model = new SimpleStringProperty(model);
        this.zmiana = new SimpleStringProperty(zmiana);
        this.czas = new SimpleStringProperty(czas);
        this.osoba = new SimpleStringProperty(osoba);
        this.uwagi = new SimpleStringProperty(uwagi);
    }

    public String getData() {
        return data.get();
    }

    public SimpleStringProperty dataProperty() {
        return data;
    }

    public void setData(String data) {
        this.data.set(data);
    }

    public String getZlecenie() {
        return zlecenie.get();
    }

    public SimpleStringProperty zlecenieProperty() {
        return zlecenie;
    }

    public void setZlecenie(String zlecenie) {
        this.zlecenie.set(zlecenie);
    }

    public String getModel() {
        return model.get();
    }

    public SimpleStringProperty modelProperty() {
        return model;
    }

    public void setModel(String model) {
        this.model.set(model);
    }

    public String getZmiana() {
        return zmiana.get();
    }

    public SimpleStringProperty zmianaProperty() {
        return zmiana;
    }

    public void setZmiana(String zmiana) {
        this.zmiana.set(zmiana);
    }

    public String getCzas() {
        return czas.get();
    }

    public SimpleStringProperty czasProperty() {
        return czas;
    }

    public void setCzas(String czas) {
        this.czas.set(czas);
    }

    public String getOsoba() {
        return osoba.get();
    }

    public SimpleStringProperty osobaProperty() {
        return osoba;
    }

    public void setOsoba(String osoba) {
        this.osoba.set(osoba);
    }

    public String getUwagi() {
        return uwagi.get();
    }

    public SimpleStringProperty uwagiProperty() {
        return uwagi;
    }

    public void setUwagi(String uwagi) {
        this.uwagi.set(uwagi);
    }
}
0

Potrzebuje materiały bądź w jaki sposób podpiąć bazę danych z pliku w projekcie do tej tabeli co utworzyłem ?
Nie działałem jeszcze na bazach danych a z materiałów jakie są dostępne na internecie większość dotyczy zaciągania danych z bazy MySQL

0


Na przykładzie tego filmu jak jest to tu przedstawione ale zarówno import jak i zapis.
I dodatkowo tu jest odczyt z pliku z dysku na określonym urządzeniu czyli nie zadziała moja aplikacja jeżeli będę chciał ją przenieść na inny komputer ponieważ ścieżka txt nie będzie taka sama.

0

Jeśli masz zamiar korzystać z danych o postaci podobnej do tych z filmu, to tu nie masz żadnego podpinania "bazy danych".
Potrzebujesz poczytać o operacjach na plikach - https://www.samouczekprogramisty.pl/operacje-na-plikach-w-jezyku-java/

Co do ścieżki do pliku z danymi, poczytaj o czymś takim jak Properties. W tym pliku zdefiniujesz lokalizacje Twojego pliku z danymi, a kod aplikacji sobie tę ścieżkę odczyta. Oczywiście plik properties dostarczasz razem z aplikacją.

1 użytkowników online, w tym zalogowanych: 0, gości: 1