从DB获取数据

时间:2014-07-26 15:20:03

标签: javafx javafx-2 javafx-8

我想从数据库中获取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中执行数据库操作的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

Platform.runLater(...)不会在后台线程中运行。它实际上完全相反:它在FX应用程序线程上执行提供的Runnable的{​​{1}}方法。作为在后台线程上运行的代码的结果,您可以使用run()更新UI,但通常有更好的方法来执行此操作。

你应该使用Task来实现你想要的目标。

Platform.runLater(...)