在 JavaFX 中使用线程进行数据库请求
JavaFX 对多线程有特定要求:
数据库访问线程
有效实现数据库的线程操作:
使用 javafx.concurrent API
JavaFX 提供用于简化多线程和 UI 的 javafx.concurrent API更新:
示例控制器与数据库访问
private WidgetDAO widgetAccessor; // DAO object for database access private Executor exec; // Executor for background threads // ... Initialization and button handling code ... // Background task for database access Task<List<Widget>> widgetSearchTask = new Task<>() { @Override public List<Widget> call() throws Exception { return widgetAccessor.getWidgetsByType(searchString); } }; // UI update on task success widgetSearchTask.setOnSucceeded(e -> { widgetTable.getItems().setAll(widgetSearchTask.getValue()); }); // Task execution on a background thread exec.execute(widgetSearchTask);
此代码将数据库访问封装在 DAO 对象中,并使用 Task 在后台线程上执行查询。使用任务的成功处理程序安排 UI 更新,确保它在 JavaFX 应用程序线程上执行。
以上是JavaFX 应用程序如何使用线程安全地执行数据库查询?的详细内容。更多信息请关注PHP中文网其他相关文章!