spring boot 集成 mybatis 分页插件 pagehelper

注:项目中需要用到分页功能,经过多方学习,整理出最便捷有效的方法,亲测有效

1. 引入依赖

    com.github.pagehelper

    pagehelper

    5.0.0

    com.github.pagehelper

    pagehelper-spring-boot-autoconfigure

    1.2.3

    com.github.pagehelper

    pagehelper-spring-boot-starter

    1.2.3


2. 配置文件 二选一

配置application.properties 文件

#配置分页插件pagehelper

pagehelperpagehelper.helperDialect= mysql

pagehelper.reasonable= true

pagehelper.supportMethodsArguments= true

pagehelper.params= count=countSql


配置application.yml文件

注意: pagehelper 是一级根目录 helperDialect 是子级

#配置分页插件pagehelper

pagehelper:

    helperDialect: mysql

    reasonable: true

    supportMethodsArguments: trueparams: count=countSql


3. 定义 PageResult 对象

注意:@Data需要下载lombok插件,或者换成 get set

import lombok.Data;

import lombok.Data;import java.io.Serializable;

import java.util.List;

@Data

public class PageResult implements Serializable {

    private Integer current;//页数

    private Integer size;//条数

    private Long total;//总记录数

    private List result;//当前页面结果

    public PageResult(Long total, List result) {

    this.total = total; this.result = result;

    }

}


4. 分页功能源码

Controller层

@PostMapping("/get")

public ReqResult getUsers(PageResult page) {

    return ReqResult.success(userService.getUsers(page));

}

Service层

PageResult getUsers(PageResult page);

ServiceImpl层

@Override

public PageResult getUsers(PageResult page) {     

    PageHelper.startPage( page.getCurrent(), page.getSize());

    Page users= ( Page) userMapper.getUsers();

    return new PageResult(users.getTotal(), users.getResult());

}

Mapper层

List getUsers();

Postman测试 size:每页条数 current :第几页(从0 或者 1 开始都 记为第一页)

[
  {
    "key":"size","value":"10",
    "type":"current","value":1
    }
]

你可能感兴趣的:(spring boot 集成 mybatis 分页插件 pagehelper)