2017-06-09 36 views
2

我想在數據表中顯示大量的數據。我使用Angular2作爲我的用戶界面,並使用Spring REST API作爲後端。我怎樣才能設計我的數據與分頁和過濾器,以平穩處理大量的數據。我將如何爲這個需求設計我的後端。Angular2 dataatable with high volume of data

+0

看一看這樣的:HTTP: //www.baeldung.com/rest-api-pagination-in-spring –

回答

1

您可以實施分頁的REST服務。

假設我們想在數據庫中顯示數據庫中的所有用戶。

我們將有一個具有以下簽名的方法:

public ResponseEntity<PaginatedResponse<User>> getUsers(
      @RequestParam("page") int page, @RequestParam("size") int size) 

在這裏,我們要發送的頁面數量和每個頁面的請求的大小。

我們定義的響應:

public class PaginatedResponse<T> { 

    private List<T> responseList; 

    private int pageNumber; 

    private int pageSize; 

    private int totalPageNumber; 
} 

在響應中,我們將擁有的總頁數和當前頁面的大小,它的索引一起。

對於數據層,你可以使用Spring數據:

public interface UserRepository extends JpaRepository<User, Long>, QueryDslPredicateExecutor<User> 

,並宣佈該方法提取分頁數據:

@Query("select u, from User u") 
    Page<User> findUsers(final Pageable pageable); 

請注意,您可以添加參數來篩選你的春天數據查詢使用@Param註釋。

至於角部位,你將不得不遍歷HTTP調用來獲取數據,並在每次檢查網頁索引範圍(即< totalPageNumber)