我想知道是否有人可以帮助我解决有关在JavaFX中创建后台线程的问题!我目前有几个SQL查询,这些查询将数据添加到当前在JavaFX Application Thread上运行的UI(请参见下面的示例)。但是,当这些查询中的每一个执行时,由于它不在后台线程上运行,因此冻结了UI。我看过使用Task的各种示例,并且对它们有所了解,但是在执行数据库查询时却无法使它们正常工作,其中一些查询需要几秒钟来运行。这是执行查询的方法之一:public void getTopOrders() { customerOrders.clear(); try { Connection con = DriverManager.getConnection(connectionUrl); //Get all records from table String SQL = "EXEC dbo.Get_Top_5_Customers_week"; ResultSet rs; try (Statement stmt = con.createStatement();) { rs = stmt.executeQuery(SQL); while (rs.next()) { double orderValue = Double.parseDouble(rs.getString(3)); customerOrders.add(new CustomerOrders(rs.getString(1), rs.getString(2), "£" + formatter.format(orderValue), rs.getString(4).substring(6, 8) + "/" + rs.getString(4).substring(4, 6) + "/" + rs.getString(4).substring(0, 4))); } } } catch (SQLException | NumberFormatException e) { }}每个处理的记录都添加到一个ObservableList中,该ObservableList链接到TableView或图形,或者只是将文本设置在标签上(取决于查询)。我如何在后台线程上执行查询,仍然让接口可以自由使用并从查询中进行更新提前致谢
添加回答
举报
0/150
提交
取消