具有大量数据的Angular2数据表

时间:2017-06-09 15:09:16

标签: java spring angular

我想在数据表上显示大量数据。我使用Angular2作为UI,使用Spring REST API作为后端。如何使用分页和过滤器设计我的数据,以平滑地处理大量数据。我将如何设计我的后端以满足此要求。

1 个答案:

答案 0 :(得分:0)

您可以实现分页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 Data:

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

并声明提取可分页数据的方法:

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

请注意,您可以使用@Param注释添加参数来过滤弹簧数据查询。

对于角度部分,您必须迭代http调用以获取数据,并且每次检查页面索引是否在范围内(即&lt; totalPageNumber)