spring boot 集成 mybatis 分页插件 page

2020-07-28  本文已影响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
    }
]

上一篇下一篇

猜你喜欢

热点阅读