这是一个由Mybatis提供的插件,在使用前先引入依赖。
一、依赖
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.4.7</version> </dependency>二、使用步骤
step1:开启分页查询,传入pageNum和pageSize,后该插件会在你的sql语句中自动加入分页参数limit
//开启分页查询,会自动在查询方法中添加分页参数 PageHelper.startPage(pageNum,pageSize);step2:执行正常的查询所有数据的语句即可。
step3:将获取到的list ,强转为Page对象,因为Page对象由方法可以获取PageHelper分页查询后 得到的总记录数和当前页数据。Page继承了ArrayList只是扩展了一些方法
step4:封装到PageBean中,通常分页查询都会由一个存放结果,和总记录数的类来存储
/** * 分页查询文章列表 * @param pageNum * @param pageSize * @param categoryId * @param state * @return */ @Override public PageBean<Article> list(Integer pageNum, Integer pageSize, Integer categoryId, String state) { //创建PageBean PageBean<Article> pb = new PageBean<>(); //开启分页查询,会自动在查询方法中添加分页参数 PageHelper.startPage(pageNum,pageSize); Map<String,Object> map = ThreadLocalUtil.get(); Integer userId = (Integer) map.get("id"); List<Article> list = articleMapper.list(userId,categoryId,state); //强转为Page对象,可以获取PageHelper分页查询后 得到的总记录数和当前页数据 Page<Article> page = (Page<Article>) list; pb.setTotal(page.getTotal()); pb.setItems(page.getResult()); return pb; }//分页返回结果对象 @Data @NoArgsConstructor @AllArgsConstructor public class PageBean <T>{ private Long total;//总条数 private List<T> items;//当前页数据集合 }