Я делаю приложение с JavaFX для университетского проекта, чтобы управлять данными в базе данных mysql и списке. Я должен отобразить данные в виде таблицы. Но табличное представление допускает только один класс POJO. Как я могу сделать соединение между двумя классами POJO? (как функция SQL Join)
Я пытался создать буферный класс, но я не понимаю, как это сделать и как его использовать.
Класс контроллера:
public class RevuesController implements Initializable, ChangeListener<Revue> {
---
@FXML private TableView<Revue> revuesTable;
@FXML private TableColumn<Revue, String> titleCol = new TableColumn<>("Titre");
@FXML private TableColumn<Revue, String> descCol = new TableColumn<>("Description");
@FXML private TableColumn<Revue, Double> priceCol = new TableColumn<>("Tarif numéro");
@FXML private TableColumn<Revue, String> visualCol = new TableColumn<>("Visuel");
@FXML private TableColumn<Periodicite, String> periodCol = new TableColumn<>("Périodicité");
@FXML private TableColumn<Integer, String> aboCol = new TableColumn<>("Abonnements en cours");
------
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
ObservableList<Revue> oListRevue = FXCollections.observableArrayList();
try {
oListRevue = FXCollections.observableArrayList(daos.getRevueDAO().getAll());
} catch (Exception e) {
System.out.println("Erreur de récupération des données de revue : " + e.getMessage());
e.printStackTrace();
}
this.titleCol.setCellValueFactory(new PropertyValueFactory<Revue, String>("titre"));
this.descCol.setCellValueFactory(new PropertyValueFactory<Revue, String>("description"));
this.priceCol.setCellValueFactory(new PropertyValueFactory<Revue, Double>("tarif_numero"));
this.visualCol.setCellValueFactory(new PropertyValueFactory<Revue, String>("visuel"));
this.periodCol.setCellValueFactory(new PropertyValueFactory<Periodicite, String>("libelle"));
this.aboCol.setCellValueFactory(new PropertyValueFactory<Integer, Integer>(""));
this.revuesTable.getColumns().setAll(titleCol, descCol, priceCol, visualCol, periodCol, aboCol);
FilteredList<Revue> fListRevue = new FilteredList<>(oListRevue);
this.revuesTable.getItems().addAll(fListRevue);
}
Редакция класса POJO:
public class Revue {
private int id_revue;
private String titre;
private String description;
private double tarif_numero;
private String visuel;
private int id_periodicite;
public Revue() {}
public Revue(String titre, String description, double tarif_numero, String visuel, int id_periodicite) {
this.id_revue = -1;
this.titre = titre;
this.description = description;
this.tarif_numero = tarif_numero;
this.visuel = visuel;
this.id_periodicite = id_periodicite;
}
public Revue(int id_revue, String titre, String description, double tarif_numero, String visuel, int id_periodicite) {
this.id_revue = id_revue;
this.titre = titre;
this.description = description;
this.tarif_numero = tarif_numero;
this.visuel = visuel;
this.id_periodicite = id_periodicite;
}
public int getId_revue() {
return id_revue;
}
public void setId_revue(int id_revue) {
this.id_revue = id_revue;
}
public String getTitre() {
return titre;
}
public void setTitre(String titre) {
this.titre = titre;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public double getTarif_numero() {
return tarif_numero;
}
public void setTarif_numero(double tarif_numero) {
this.tarif_numero = tarif_numero;
}
public String getVisuel() {
return visuel;
}
public void setVisuel(String visuel) {
this.visuel = visuel;
}
public int getId_periodicite() {
return id_periodicite;
}
public void setId_periodicite(int id_periodicite) {
this.id_periodicite = id_periodicite;
}
Периодическая запись класса POJO:
public class Periodicite {
private int id;
private String libelle;
public Periodicite(int id, String libelle) {
this.id = id;
this.libelle = libelle;
}
public Periodicite(String libelle) {
this.id = -1;
this.libelle = libelle;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getLibelle() {
return libelle;
}
public void setLibelle(String libelle) {
this.libelle = libelle;
}