java - 从不同的控制器刷新 TableView
问题描述
添加新人时personTableView
如何刷新?ListPersonController
AddPersonController
ListPersonController.java
public class ListPersonController {
@FXML
public TableView<Person> personTableView;
@FXML
private TableColumn<Person, String> name;
@FXML
private TableColumn<Person, String> gender;
@FXML
public void initialize() throws SQLException, ClassNotFoundException {
name.setCellValueFactory(new PropertyValueFactory<>("name"));
gender.setCellValueFactory(new PropertyValueFactory<>("gender"));
}
private List<Person> getAllPerson() throws ClassNotFoundException, SQLException {
Connection conn = DriverManager.getConnection("jdbc:sqlite:src/main/resources/person.db");
List<Person> personList = new ArrayList<>();
ResultSet rs;
try {
Class.forName("org.sqlite.JDBC");
Statement stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT id, name, gender FROM person");
while (rs.next()) {
String name = rs.getString("name");
String gender = rs.getString("gender");
personList.add(new Person(name, gender));
}
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
return personList;
}
}
AddPersonController.java
public class AddPersonController {
@FXML
protected void handleSaveButtonAction(ActionEvent event) throws SQLException, ClassNotFoundException {
String fName = "John";
String fGender = "female"
Person person = new Person(
fName,
fGender,
);
save(person);
}
private void insertIntoPersonTable(Person person) throws ClassNotFoundException, SQLException {
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:src/main/resources/person.db");
PreparedStatement prep = conn.prepareStatement("INSERT INTO person VALUES (?, ?);");
prep.setString(2, person.getName());
prep.setString(3, person.getCommonName());
prep.addBatch();
conn.setAutoCommit(false);
prep.executeBatch();
conn.setAutoCommit(true);
}
}
解决方案
推荐阅读
- angular - .pipe(map()) 有什么意义
- android - 设备通过蓝牙连接时处理多个呼叫
- android - 应用程序关闭时,自定义声音在 Firebase 推送通知中不起作用
- laravel - 使用 laravel 从数据库存储和下载文件
- android - Android:片段导致屏幕旋转崩溃
- sql-server - 从 SQL 管理工作室连接到 Azure DB 失败 MSSQLSERVER_10060
- node.js - 如何在 SDK 中转换节点 js 项目并在另一个节点 js 项目中使用/使用该 SDK?
- angular6 - 如何在 Angular 6 中编写成功和错误函数
- php - 使用模型转换器转换来自数据库的数据转换普通数据中的键值我的意思是它不会显示 html 标签
- java - 在循环中增加变量,意外结果