import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.datafx.controller.FXMLController;
import org.datafx.provider.ListDataProvider;
import org.datafx.reader.JdbcSource;
import org.datafx.reader.converter.JdbcConverter;
import model.Person;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
@FXMLController("/application/Sample.fxml")
public class SampleController {
// final String sURL =
final String sURL = "jdbc:sqlserver://192.168.1.22:1433;databaseName=gregs_list;user=*****;password=*****";
final String sTableName = "PERSON";
final String sColumnFirstName = "FIRSTNAME";
final String sColumnLastName = "LASTNAME";
ObservableList<Person> myList = FXCollections.observableArrayList();
@FXML
TableView<Person> tblView;
@FXML
TableColumn<Person, String> colFirstName;
@FXML
TableColumn<Person, String> colLastName;
@FXML
public void ActionConnect(ActionEvent event) {
// Clear the Table View
myList.removeAll(myList);
connectData();
tblView.setItems(myList);
colFirstName
.setCellValueFactory(new PropertyValueFactory<Person, String>(
"firstName"));
colLastName
.setCellValueFactory(new PropertyValueFactory<Person, String>(
"lastName"));
}
private void connectData() {
JdbcConverter<Person> converter;
converter = new JdbcConverter<Person>() {
@Override
public Person convertOneRow(ResultSet rs) {
Person answer = new Person();
try {
answer.setFirstName(rs.getString(sColumnFirstName));
answer.setLastName(rs.getString(sColumnLastName));
return answer;
} catch (SQLException ex) {
Logger.getLogger(SampleController.class.getName()).log(
Level.SEVERE, null, ex);
}
return null;
}
};
JdbcSource<Person> dr = new JdbcSource<Person>(sURL, converter,
sTableName, sColumnFirstName, sColumnLastName);
ListDataProvider<Person> lodp = new ListDataProvider<>(dr);
lodp.setResultObservableList(myList);
lodp.retrieve();
}
}