1、简介
SpringData JPA 他具有分页的功能,所以操作起来比较简单。在我们的XXXXRepository中我们需要取继承JpaRepository,正是因为他包含了许多分页方法,才让我们可以很轻松的操作!见下表(包含的相关方法):
方法 | 描述 |
---|---|
List findAll() | 返回所有实体 |
List findAll(Iterable ids) | 返回指定id的所有实体 |
T getOne(ID id) | 根据id返回对应的实体,如果未找到,则返回空 |
List findAll(Sort sort) | 返回所有实体,按照指定顺序排序返回 |
Page findAll(Pageable pageable) | 返回实体列表,实体的offset和limit通过pageable来指定 |
2、具体实现步骤:
1)、我们的Service层( List 可以改变,看你需要的返回类型即可)
List<User> testSplit(Integer pageNum,Integer pageSize);
- pageNum表示的是当前属于第几页
- pageSize表示的是当前页有几条数据
2)、我们的ServiceImp层(这里实现我们的相关分页)
@Override
public List<User> testSplit(Integer pageNum,Integer pageSize) {
Pageable pageable = PageRequest.of(pageNum,pageSize);
PageRequest pageReques = PageRequest.of(pageNum, pageSize);
Page<SysUserAndPerson> sysUserAndPeople = sysUserRepository.findAll(pageReques);
List<SysUserAndPerson> list = sysUserAndPeople.getContent();
return list;
}
3)、我们的Repository层(从数据库获取相应的数据)
@Query(value = "这里是你的sql语句")
Page findAll(Pageable pageable);
4)、我们的Controller层(将数据返回前台,以及接收前台返回过来的参数)
@GetMapping("/SplitDatas/{page}/{pageSize}")
public R testSplit(@RequestParam(value = "page",required = false,defaultValue = "0") Integer page, @RequestParam(value = "pageSize",required = false,defaultValue = "1") Integer pageSize){
return sysManageService.userAndPersonsplit(page,pageSize);
}
}
到此简单的分页结束了