在JavaFX中更新或删除后刷新数据库表视图可以通过以下步骤完成:
DriverManager.getConnection()
方法连接到数据库。Statement
或PreparedStatement
对象来执行SQL语句。例如,使用executeUpdate()
方法执行UPDATE或DELETE语句。以下是一个示例代码片段,演示了如何在JavaFX中更新或删除数据后刷新数据库表视图:
// 导入必要的类
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TableView;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import java.sql.*;
public class MainApp extends Application {
private ObservableList<Person> data = FXCollections.observableArrayList();
private TableView<Person> tableView = new TableView<>();
@Override
public void start(Stage primaryStage) {
// 创建JavaFX界面
Button updateButton = new Button("更新数据");
Button deleteButton = new Button("删除数据");
VBox vbox = new VBox(updateButton, deleteButton, tableView);
// 绑定按钮点击事件
updateButton.setOnAction(e -> updateData());
deleteButton.setOnAction(e -> deleteData());
// 显示JavaFX界面
Scene scene = new Scene(vbox);
primaryStage.setScene(scene);
primaryStage.show();
}
// 更新数据的方法
private void updateData() {
// 连接数据库
try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password")) {
// 执行更新操作
try (Statement stmt = conn.createStatement()) {
stmt.executeUpdate("UPDATE person SET name = 'New Name' WHERE id = 1");
}
// 刷新表视图
data.clear(); // 清空原有数据
try (Statement stmt = conn.createStatement()) {
ResultSet rs = stmt.executeQuery("SELECT * FROM person");
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
data.add(new Person(id, name, age));
}
}
tableView.setItems(data);
} catch (SQLException e) {
e.printStackTrace();
}
}
// 删除数据的方法
private void deleteData() {
// 连接数据库
try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password")) {
// 执行删除操作
try (Statement stmt = conn.createStatement()) {
stmt.executeUpdate("DELETE FROM person WHERE id = 1");
}
// 刷新表视图
data.clear(); // 清空原有数据
try (Statement stmt = conn.createStatement()) {
ResultSet rs = stmt.executeQuery("SELECT * FROM person");
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
data.add(new Person(id, name, age));
}
}
tableView.setItems(data);
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
// Person类用于存储数据
public static class Person {
private int id;
private String name;
private int age;
public Person(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
// 省略getter和setter方法
}
}
请注意,上述示例中的数据库连接信息需要根据实际情况进行修改,包括数据库URL、用户名和密码。此外,表视图的更新和删除操作是基于表中的id字段。在实际应用中,需要根据表的结构和需求进行相应的修改。
希望这个示例能够帮助您在JavaFX中更新或删除数据后刷新数据库表视图。这只是一个简单的示例,您可以根据自己的需求进行扩展和优化。对于JavaFX开发、数据库操作和Java编程的更多学习资源,您可以参考TencentDB for MySQL。
领取专属 10元无门槛券
手把手带您无忧上云