Witam.
Robię sobie jakiś program który pobiera dane z bazy. Program wykorzystuje hibernate i javefx, i niestety mam problem z pobieraniem danych z bazy i wyświetlaniem tego w tableview.
mam taki kod:
mport java.net.URL;
import java.util.ResourceBundle;
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.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import org.hibernate.Query;
import org.hibernate.Session;
public class Gui implements Initializable{
@FXML
private TableColumn<?, ?> imie;
@FXML
private TableColumn<?, ?> nr_domu;
@FXML
private TableColumn<?, ?> ulica;
@FXML
private TableColumn<?, ?> nazwisko;
@FXML
private TextField eSearch;
@FXML
private Button cButton;
@FXML
private TableColumn<?, ?> nr_lokalu;
@FXML
private TableColumn<?, ?> id;
@FXML
private TableView<Osoba> tbView;
@FXML
private TableColumn<?, ?> pesel;
private ObservableList<Osoba> data;
@FXML
void cancelButton(ActionEvent event) {
Session session = SessionFactoryUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
//createPerson(session);
queryPerson(session);
}
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
// TODO Auto-generated method stub
}
public void queryPerson(Session session){
Query query = session.createQuery("from Osoba");
ObservableList<Osoba>list = FXCollections.<Osoba>observableArrayList(query.list());
tbView.setItems(list);
session.close();
}
public static void createPerson(Session session) {
Wyborcy person = new Wyborcy();
person.setId(3);
person.setImie("Pawdfdfel");
person.setNazwisko("Nazwisko");
person.setPesel("3434334243242");
person.setUlica("dupaa");
person.setNrDomu("23");
person.setNrLokalu("3");
session.save(person);
session.getTransaction().commit();
}
}
Program się generuje tabela sie wyświetla ale pusta (tzn są linie i widać tabelę ale bez danych) ponieważ w bazie są trzy rekordy tm mogę bo trzech wierszach klikać pozostałe są zablokowane.
Nie ukrywam że nie bardzo rozumiem ObservableList które na stronie oracle w przykładzie ( niestety bez bazy danych ) jest pokazane.
Prosiłbym o pomoc w jaki sposób mogę ten dane z bazy pobrać i załadować do tabeli oraz informację czym jest ObservableList.
Pozdrawiam