springboot 分页查询参数_10. Spring Boot 中的分页查询

在Spring Boot中使用分页查询主要依赖了org.springframework.data.domain.*包下面的及格分页类的功能。使用分页查询常见有两种方式,一种是直接在程序中写死分页的参数(页数,每页大小等),需要依赖@PageableDefault注解。该注解指明了分页参数的默认值。另一种则是,可以通过URL等传入的信息进行分页信息的设置。

在常用的项目中,分页信息肯定是可以传入的,因此,只讨论如何根据传入的分页信息来实现分页查询。

1. Repository层加入分页支持

依然以配置了JPA操作的Spring Boot项目为例,要实现分页,需要在原有的架构上进行一定的改造。

首先就是在DAO层本身要支持分页参数。由于Spring中jpa的简化性,只需要添加如下类似的声明,即表示可以通过DAO层支持分页访问数据库了。

Page findAll(Pageable pageable);

2. 服务层提供对该接口的访问

做一个简单的封装即可,例如:

/**根据传入的分页参数,查询指定分页内的用户列表*/

public Page getAllSysUserInfoByPageable(Pageable pageable){

return sysUserInfoRepository.findAll(pageable);

}

3. Controller层创建分页对象来访问

底层的分页支持都已经提供好了,只需要在Controller层根据用户传入的参数来创建一个分页请求对象,就可以实现分页查询了。

第一步: 设置分页后的结果排序方案对象。

第二步: 根据排序方案对象和传入的参数实例化一个Pageable对象,用于分页的大小、页面数和排序方案。

第三步: 使用该分页对象

一个简单的示例如下:

/**实现分页查询的方法*/

@GetMapping("/page/{pageId}/size/{sizeId}")

public List getAllSysUserInfoListByPage(@PathVariable("pageId") int pageId, @PathVariable("sizeId") int size) {

Sort sort = new Sort(Sort.Direction.ASC, "userId");

Pageable pageable = new PageRequest(pageId, size, sort);

Page pageContent = sysUserInfoService.getAllSysUserInfoByPageable(pageable);

return pageContent.getContent();

}

Pageable是一个接口,用于接收分页请求(PageRequet)对象。

分页参数pageId是默认从 0 开始计数的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值