Ленивая загрузка

 
 
 
Сообщения:13
Добрый день, в данный момент при формировании и выводе таблицы загружаю все таблицу из mysql, но в связи с переездом БД на сервер и медленном 3G соединение, хотелось бы сделать ленивую загрузку.
Имею:
1. TableView
  private TableView<AdminPane> createTableAdmin()
  {
    TableView<AdminPane> table = new TableView<>();
    

    table.columnResizePolicyProperty();
    
    TableColumn code = new TableColumn("Артикул");
    code.setMinWidth(35.0D);
    //code.setMaxWidth(75.0D);
    code.setCellValueFactory(new PropertyValueFactory("articul"));
    

    TableColumn id = new TableColumn("Код");
    id.setMinWidth(15.0);
    //id.setMaxWidth(25.0);
    id.setCellValueFactory(new PropertyValueFactory("id"));

    TableColumn sname = new TableColumn("Наименование");
    sname.setMinWidth(380.0D);
    sname.setCellValueFactory(new PropertyValueFactory("shortname"));    

    TableColumn group = new TableColumn("Группа");
    group.setMinWidth(30.0);
    //group.setMaxWidth(30.0);
    group.setCellValueFactory(new PropertyValueFactory("group"));   
    
    TableColumn status = new TableColumn("Статус");
    status.setMinWidth(20.0D);
    status.setCellValueFactory(new PropertyValueFactory("actual_status"));    

    TableColumn col = new TableColumn("Остаток");
    col.setMinWidth(40.0D);
    col.setCellValueFactory(new PropertyValueFactory("size"));
    
    
    TableColumn stock_size_0 = new TableColumn("В");
    stock_size_0.setMinWidth(25.0);
    stock_size_0.setCellValueFactory(new PropertyValueFactory("stock_size_0"));
    
    TableColumn stock_size_1 = new TableColumn("И");
    stock_size_1.setMinWidth(25.0);
    stock_size_1.setCellValueFactory(new PropertyValueFactory("stock_size_1"));

    TableColumn price = new TableColumn("Цена");
    price.setMinWidth(50.0);
    price.setCellValueFactory(new PropertyValueFactory("price"));
    
    TableColumn min_remainder = new TableColumn("МО");
    min_remainder.setMinWidth(20.0);
    min_remainder.setCellValueFactory(new PropertyValueFactory("min_remainder"));
    
   [b]connectordb.getPaneAdmin(admprod);[/b]
    table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
    table.setItems(admprod);
    table.setId("tablefont");
    
    table.getColumns().addAll(id,code, sname, group, col,price, stock_size_0, stock_size_1,min_remainder);
    double width = sSize.width - sSize.width*0.235;
    table.setMaxWidth(width);
    return table;
  }

2. Функция загрузки из mysql.
    public void getPaneAdmin(ObservableList<AdminPane> prod) {
        try {
            int index = 1;
            prod.clear();
            Class.forName("com.mysql.jdbc.Driver");

            Connection connection = DriverManager.getConnection(url, properties);
            Statement stmt = connection.createStatement();
            String query = "SELECT `id`,`short_name`,`group`,`value`,`sell`,`actual_status`,`stock`,`stock_0`,`stock_1`,`min_remainder`,`articul` FROM `prais`;";
            ResultSet rs = stmt.executeQuery(query);

            while (rs.next()) {
               prod.add(new AdminPane(index++, rs.getInt(1), rs.getString(2), rs.getString(2), rs.getInt(3), 0, rs.getInt(5), rs.getDouble(4), rs.getInt(6),rs.getInt(7),rs.getInt(8),rs.getInt(9),rs.getInt(10),rs.getString(11)));
            }
            rs.close();
            stmt.close();

            connection.close();
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
    }


Цель сделать так, чтобы при открытии таблица подгружалась частями. Благодарю за внимание.
Изменен:24 окт 2018 18:09
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет