一、手写sql
select * from user limit (pageNum-1)*pageSize,pageSize;
- pageNum:当前页数,从第一页开始;
- pageSize:每页显示的行数 例如,每页显示两行数据,查询第二页的数据,也就是:
select * from user limit 2,2;
二、SpringBoot整合pagehelper插件
1. 引入依赖(注意引入的是spring-boot-starter版本的)
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
如果引入的是这个会不起作用
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.8</version>
</dependency>
二、在application.yml中配置属性
#pagehelper属性配置
pagehelper:
#启用合理化,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页
reasonable: true
#标识是哪一种数据库
helper-dialect: mysql
#支持通过 Mapper 接口参数来传递分页参数,默认值false,分页插件会从查询方法的参数值中,自动根据上面 params 配置的字段中取值,查找到合适的值时就会自动分页
support-methods-arguments: true
#如果 pageSize=0 就会查询出全部的结果(相当于没有执行分页查询)
page-size-zero: false
三、demo实例
// 返回所有用户列表
@Override
public PageInfo<UserVO> listUser(Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum,pageSize);
// 查询数据库
List<UserDO> userDOList = userDOMapper.listUser();
// UserDO->UserVO...
PageInfo pageInfo = new PageInfo(userVOList);
return pageInfo;
}
需要注意:只有紧跟在PageHelper.startPage()语句后面的查询语句才有分页效果