我想知道是否有人可以幫助我解決有關(guān)在JavaFX中創(chuàng)建后臺線程的問題!我目前有幾個SQL查詢,這些查詢將數(shù)據(jù)添加到當(dāng)前在JavaFX Application Thread上運(yùn)行的UI(請參見下面的示例)。但是,當(dāng)這些查詢中的每一個執(zhí)行時,由于它不在后臺線程上運(yùn)行,因此凍結(jié)了UI。我看過使用Task的各種示例,并且對它們有所了解,但是在執(zhí)行數(shù)據(jù)庫查詢時卻無法使它們正常工作,其中一些查詢需要幾秒鐘來運(yùn)行。這是執(zhí)行查詢的方法之一: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或圖形,或者只是將文本設(shè)置在標(biāo)簽上(取決于查詢)。我如何在后臺線程上執(zhí)行查詢,仍然讓接口可以自由使用并從查詢中進(jìn)行更新提前致謝
添加回答
舉報
0/150
提交
取消