使用线程进行数据库请求
JavaFX 提供了专门为在后台线程中执行代码而设计的并发 API,该 API 专门设计用于在该代码执行完成(或期间)时更新 JavaFX UI。 javafx.concurrent 中的关键类是 Task,它表示要在后台线程上执行的单个一次性工作单元。此类定义了一个抽象方法 call(),它不带任何参数,返回结果,并且可能抛出已检查的异常。 要正确实现数据库请求的线程化,应在后台线程中执行长时间运行的操作(数据库访问),完成时返回操作结果,然后安排对 UI 上的 UI 进行更新(FX 应用程序) ) 线程使用 Platform.runLater(Runnable r) 在 FX 应用程序线程上执行 r.run()。
一般良好实践多线程
使用 javafx.concurrent API
例如:
final int courseCode = Integer.valueOf(courseId.getText()); Task<Course> courseTask = new Task<Course>() { @Override public Course call() throws Exception { return myDAO.getCourseByCode(courseCode); } }; courseTask.setOnSucceeded(e -> { Course course = courseTask.getCourse(); if (course != null) { courseCodeLbl.setText(course.getName()); } }); exec.execute(courseTask);
以上是如何使用JavaFX线程高效处理数据库请求?的详细内容。更多信息请关注PHP中文网其他相关文章!