Utiliser des threads pour effectuer des requêtes de base de données avec JavaFX
JavaFX dicte deux règles fondamentales concernant les threads :
Exception rencontrée
L'exception que vous avez rencontrée provient d'une tentative de mise à jour de l'interface utilisateur (courseCodeLbl.setText(.. .)) à partir d'un thread autre que le thread de l'application JavaFX.
Implémentation du Threading Correctement
Pour garantir que les requêtes de base de données sont exécutées dans un thread séparé, suivez ces étapes :
Implémentation du threading à l'aide de JavaFX.concurrent
JavaFX fournit la classe Task spécialement conçue pour gérer les threads d'arrière-plan et mettre à jour l'interface utilisateur.
Exemple d'implémentation
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);
Dans cet exemple, l'accès à la base de données est effectué dans une tâche et la mise à jour de l'interface utilisateur est planifiée. sur le thread d'application JavaFX à l'aide du gestionnaire setOnSucceeded. En suivant ces directives, vous pouvez utiliser efficacement les threads pour optimiser les requêtes de base de données tout en conservant la réactivité de l'interface utilisateur dans les applications JavaFX.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!