来自数据库复制的Javafx TableView
我用scene builder创建了一个表,在那里定义了我的所有列,所以我现在尝试从数据库中填充列,我得到的只是数据库中的第一行,当显示在tableView上时,所有其他值都会被复制。我需要帮助,我似乎找不到缺少的内容来自数据库复制的Javafx TableView,javafx,Javafx,我用scene builder创建了一个表,在那里定义了我的所有列,所以我现在尝试从数据库中填充列,我得到的只是数据库中的第一行,当显示在tableView上时,所有其他值都会被复制。我需要帮助,我似乎找不到缺少的内容 public void populateTable() { final String username = "root"; final String password = "joshua"; final String bd_url = "jdbc:mys
public void populateTable() {
final String username = "root";
final String password = "joshua";
final String bd_url = "jdbc:mysql://localhost:3306/Bus_billing_system?zeroDateTimeBehavior=convertToNull";
try {
connection = DriverManager.getConnection(bd_url, username, password);
getAllStatement = connection.createStatement();
resultSet = getAllStatement.executeQuery("select * from RouteDB");
//from column in table
fromColumn.setCellValueFactory(new Callback<CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
public ObservableValue<String> call(CellDataFeatures<ObservableList, String> param) {
return new SimpleStringProperty(param.getValue().get(0).toString());
}
});
//to column in table
toColumn.setCellValueFactory(new Callback<CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
public ObservableValue<String> call(CellDataFeatures<ObservableList, String> param) {
return new SimpleStringProperty(param.getValue().get(1).toString());
}
});
//date of departure column in table
dateOfDepartureColumn.setCellValueFactory(new Callback<CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
public ObservableValue<String> call(CellDataFeatures<ObservableList, String> param) {
return new SimpleStringProperty(param.getValue().get(2).toString());
}
});
//time of departure column in table
timeOfDepartureColumn.setCellValueFactory(new Callback<CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
public ObservableValue<String> call(CellDataFeatures<ObservableList, String> param) {
return new SimpleStringProperty(param.getValue().get(3).toString());
}
});
//price column
priceColumn.setCellValueFactory(new Callback<CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
public ObservableValue<String> call(CellDataFeatures<ObservableList, String> param) {
return new SimpleStringProperty(param.getValue().get(4).toString());
}
});
allRouteTable.getColumns().setAll(fromColumn, toColumn, dateOfDepartureColumn, timeOfDepartureColumn, priceColumn);
while (resultSet.next()) {
for (int i = 1; i <= resultSet.getMetaData().getColumnCount(); i++) {
routes.add(resultSet.getString(i));
}
data.add(routes);
}
allRouteTable.setItems(data);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void populateTable(){
最终字符串username=“root”;
最终字符串密码=“joshua”;
最终字符串bd_url=“jdbc:mysql://localhost:3306/Bus_billing_system?zeroDateTimeBehavior=convertToNull";
试一试{
connection=DriverManager.getConnection(bd_url、用户名、密码);
getAllStatement=connection.createStatement();
resultSet=getAllStatement.executeQuery(“从RouteDB中选择*);
//从表中的列开始
fromColumn.setCellValueFactory(新回调(){
公共observeValue调用(CellDataFeatures参数){
返回新的SimpleStringProperty(param.getValue().get(0.toString());
}
});
//到表中的列
toColumn.setCellValueFactory(新回调(){
公共observeValue调用(CellDataFeatures参数){
返回新的SimpleStringProperty(param.getValue().get(1.toString());
}
});
//表中的“出发日期”列
DateOfDepartRecolumn.setCellValueFactory(新回调(){
公共observeValue调用(CellDataFeatures参数){
返回新的SimpleStringProperty(param.getValue().get(2.toString());
}
});
//表中的“出发时间”列
TimeOfDepartRecolumn.setCellValueFactory(新回调(){
公共observeValue调用(CellDataFeatures参数){
返回新的SimpleStringProperty(param.getValue().get(3.toString());
}
});
//价格栏
priceColumn.setCellValueFactory(新回调(){
公共observeValue调用(CellDataFeatures参数){
返回新的SimpleStringProperty(param.getValue().get(4.toString());
}
});
allRouteTable.getColumns().setAll(从列、到列、分离日期、分离时间、价格列);
while(resultSet.next()){
对于(inti=1;i新代码
public void populateTable() {
final String username = "root";
final String password = "joshua";
final String bd_url = "jdbc:mysql://localhost:3306/Bus_billing_system?zeroDateTimeBehavior=convertToNull";
try {
connection = DriverManager.getConnection(bd_url, username, password);
getAllStatement = connection.createStatement();
resultSet = getAllStatement.executeQuery("select * from RouteDB");
//from column in table
fromColumn.setCellValueFactory(new Callback<CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<ObservableList, String> param) {
return new SimpleStringProperty(param.getValue().get(0).toString());
}
});
//to column in table
toColumn.setCellValueFactory(new Callback<CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<ObservableList, String> param) {
return new SimpleStringProperty(param.getValue().get(1).toString());
}
});
//date of departure column in table
dateOfDepartureColumn.setCellValueFactory(new Callback<CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<ObservableList, String> param) {
return new SimpleStringProperty(param.getValue().get(2).toString());
}
});
//time of departure column in table
timeOfDepartureColumn.setCellValueFactory(new Callback<CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<ObservableList, String> param) {
return new SimpleStringProperty(param.getValue().get(3).toString());
}
});
//price column
priceColumn.setCellValueFactory(new Callback<CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<ObservableList, String> param) {
return new SimpleStringProperty(param.getValue().get(4).toString());
}
});
//availableSpace column
availableSpaceColumn.setCellValueFactory(new Callback<CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<ObservableList, String> param) {
return new SimpleStringProperty(param.getValue().get(5).toString());
}
});
allRouteTable.getColumns().setAll(fromColumn, toColumn, dateOfDepartureColumn, timeOfDepartureColumn, priceColumn, availableSpaceColumn);
while (resultSet.next()) {
//This is the correction made defining the routes object after while loop
routes = FXCollections.observableArrayList();
for (int i = 1; i <= resultSet.getMetaData().getColumnCount(); i++) {
routes.add(resultSet.getString(i));
}
data.add(routes);
}
allRouteTable.setItems(data);
} catch (SQLException e) {
e.printStackTrace();
}
finally {
try {
connection.close();
getAllStatement.close();
resultSet.close();
} catch (SQLException er) {
er.printStackTrace();
}
}
}
public void populateTable(){
最终字符串username=“root”;
最终字符串密码=“joshua”;
最终字符串bd_url=“jdbc:mysql://localhost:3306/Bus_billing_system?zeroDateTimeBehavior=convertToNull";
试一试{
connection=DriverManager.getConnection(bd_url、用户名、密码);
getAllStatement=connection.createStatement();
resultSet=getAllStatement.executeQuery(“从RouteDB中选择*);
//从表中的列开始
fromColumn.setCellValueFactory(新回调(){
@凌驾
公共observeValue调用(CellDataFeatures参数){
返回新的SimpleStringProperty(param.getValue().get(0.toString());
}
});
//到表中的列
toColumn.setCellValueFactory(新回调(){
@凌驾
公共observeValue调用(CellDataFeatures参数){
返回新的SimpleStringProperty(param.getValue().get(1.toString());
}
});
//表中的“出发日期”列
DateOfDepartRecolumn.setCellValueFactory(新回调(){
@凌驾
公共observeValue调用(CellDataFeatures参数){
返回新的SimpleStringProperty(param.getValue().get(2.toString());
}
});
//表中的“出发时间”列
TimeOfDepartRecolumn.setCellValueFactory(新回调(){
@凌驾
公共observeValue调用(CellDataFeatures参数){
返回新的SimpleStringProperty(param.getValue().get(3.toString());
}
});
//价格栏
priceColumn.setCellValueFactory(新回调(){
@凌驾
公共observeValue调用(CellDataFeatures参数){
返回新的SimpleStringProperty(param.getValue().get(4.toString());
}
});
//可用空间列
availableSpaceColumn.setCellValueFactory(新回调(){
@凌驾
公共observeValue调用(CellDataFeatures参数){
返回新的SimpleStringProperty(param.getValue().get(5.toString());
}
});
allRouteTable.getColumns().setAll(从列、到列、分离日期、分离时间、价格列、可用空间列);
while(resultSet.next()){
//这是在while循环之后定义routes对象所做的更正
routes=FXCollections.observableArrayList();
对于(inti=1;i试试这个。也许这会有帮助
@FXML private void SearchButton()
{
Connection c ;
datamem = FXCollections.observableArrayList();
try
{
c = Dao.getCon();
String SQL =SELECT * FROM `Member`;
ResultSet rs = c.createStatement().executeQuery(SQL);
if(table.getColumns().isEmpty())
{
for(int i=0 ; i<rs.getMetaData().getColumnCount(); i++)
{
final int j = i;
TableColumn col = new TableColumn(rs.getMetaData().getColumnName(i+1));
col.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList,String>,ObservableValue<String>>(){
public ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {
return new SimpleStringProperty(param.getValue().get(j).toString());
}
});
table.getColumns().addAll(col);
}//for
}//if
while(rs.next())
{
ObservableList<String> row = FXCollections.observableArrayList();
for(int i=1 ; i<=rs.getMetaData().getColumnCount(); i++)
{
row.add(rs.getString(i));
}// for
datamem.add(row);
}//while
table.setItems(datamem);
}//try
catch(Exception e)
{
JOptionPane.showMessageDialog(null, "Problem in Search Button "+e);
}
}//else
}//else
} //search method
@FXML private void SearchButton()
{
连接c;
datamem=FXCollections.observableArrayList();
尝试
{
c=Dao.getCon();
字符串SQL=从'Member'中选择*;
ResultSet rs=c.createStatement().executeQuery(SQL);
if(table.getColumns().isEmpty())
{
for(int i=0;i尝试在循环中创建一个新对象,将数据添加到TableView中。不仅仅是更改以前声明的对象的值。哇,非常感谢,我所要做的就是在for循环之前添加routes=FXCollections.ObsevableArrayList()。THNAK you soo more@Marcwhile(resultSet.next()){routes=FXCollections.observearraylist();for(int i=1;我可能会用工作代码回答您自己的问题,以便其他人可以使用它。您在哪里声明数据
?