美文网首页
spring boot 集成 mybatis 分页插件 page

spring boot 集成 mybatis 分页插件 page

作者: 王疏蔬 | 来源:发表于2020-07-28 18:03 被阅读0次

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

    1. 引入依赖

    <!-- 分页插件pagehelper -->

    <dependency>

        <groupId>com.github.pagehelper</groupId>

        <artifactId>pagehelper</artifactId>

        <version>5.0.0</version>

    </dependency>

    <dependency>

        <groupId>com.github.pagehelper</groupId>

        <artifactId>pagehelper-spring-boot-autoconfigure</artifactId>

        <version>1.2.3</version>

    </dependency>

    <dependency>

        <groupId>com.github.pagehelper</groupId>

        <artifactId>pagehelper-spring-boot-starter</artifactId>

        <version>1.2.3</version>

    </dependency>

    <!-- 分页插件pagehelper -->


    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<User> users= ( Page<User>) userMapper.getUsers();

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

    }

    Mapper层

    List<User> getUsers();

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

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

    相关文章

      网友评论

          本文标题:spring boot 集成 mybatis 分页插件 page

          本文链接:https://www.haomeiwen.com/subject/fhfqrktx.html