为了账号安全,请及时绑定邮箱和手机立即绑定

JavaFX-SQL查询的后台线程

JavaFX-SQL查询的后台线程

犯罪嫌疑人X 2019-12-04 13:09:43
我想知道是否有人可以帮助我解决有关在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或图形,或者只是将文本设置在标签上(取决于查询)。我如何在后台线程上执行查询,仍然让接口可以自由使用并从查询中进行更新提前致谢
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 483 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信