我想从数据库中获取JavaFX应用程序中的数据。但在此期间,应用程序冻结了。
Map<String, List<DataObj>> dbData = ConnectedAgents.generateDataObj(ac);
我测试了这段代码,首先看起来很好看。但这是做背景数据库操作的野兽吗?
Platform.runLater(new Runnable()
{
@Override
public void run()
{
Map<String, List<DataObj>> dbData = ConnectedAgents.generateDataObj(ac);
}
});
您能告诉我在JavaFX中执行数据库操作的最佳方法是什么?
答案 0 :(得分:2)
Platform.runLater(...)
不会在后台线程中运行。它实际上完全相反:它在FX应用程序线程上执行提供的Runnable
的{{1}}方法。作为在后台线程上运行的代码的结果,您可以使用run()
更新UI,但通常有更好的方法来执行此操作。
你应该使用Task
来实现你想要的目标。
Platform.runLater(...)