分页查询,pageHelper, pagehelper-spring-boot-starter
一、传统分页查询
要想从数据库中进行分页查询,我们要使用
LIMIT
关键字,格式为:limit 开始索引 每页显示的条数
- 查询第1页数据的SQL语句是:
select * from emp limit 0,10;
- 查询第2页数据的SQL语句是:
select * from emp limit 10,10;
- 查询第3页的数据的SQL语句是:
select * from emp limit 20,10;
观察以上SQL语句,发现: 开始索引一直在改变 , 每页显示条数是固定的
开始索引的计算公式: 开始索引 = (当前页码 - 1) * 每页显示条数
后台给前端返回的数据包含:List集合(数据列表)、total(总记录数)
而这两部分我们通常封装到PageBean对象中,并将该对象转换为json格式的数据响应回给浏览器。
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageBean {
private Long total; //总记录数
private List rows; //当前页数据列表
}
//条件分页查询
@GetMapping
public Result page(@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "10") Integer pageSize) {
//记录日志
log.info("分页查询,参数:{},{}", page, pageSize);
//调用业务层分页查询功能
PageBean pageBean = empService.page(page, pageSize);
//响应
return Result.success(pageBean);
}
二、分页插件
2.1 pagehelper和pagehelper-spring-boot-starter区别
pagehelper:需要主动添加拦截器 (SSM项目推荐) ,添加拦截器之后才自动添加limit
pagehelper-spring-boot-starter:不需要主动添加拦截器,SpringBoot会主动帮我们添加拦截器 (SpringBoot项目推荐)
2.2依赖区别
SSM推荐,别忘了添加拦截器
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.3.0</version>
</dependency>
SpringBoot推荐,不需注定添加拦截器
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.2</version>
</dependency>
2.3使用
返回的信息: