整合PageHelper

HeJin小于 1 分钟Spring全家桶SpringBoot精讲细讲

引入依赖

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.3.0</version>
</dependency>

配置文件

application.yaml

pagehelper:
  helper-dialect: mysql
  reasonable: true
  support-methods-arguments: true
  params: count=countSql

使用

@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("/user")
    public PageInfo<User> findAllUser(){
        // 分页
        PageHelper.startPage(1, 2);
        List<User> userList = userService.findAllUser();

        return new PageInfo<>(userList);
    }

}

结果:

image-20210512121420851
image-20210512121420851

自定义返回参数

自定义一个PageBean

@Data
public class PageBean<T> implements Serializable {

    private static final long serialVersionUID = 1L;

    /** 总记录数 **/
    private long total;

    /** 结果集 **/
    private List<T> list;

    /** 第几页 **/
    private int pageNum;

    /** 每页记录数 **/
    private int pageSize;

    /** 总页数 **/
    private int pages;

    /** 当前页的数量 <= pageSize,该属性来自ArrayList的size属性 **/
    private int size;

    public PageBean(List<T> list) {
        if (list instanceof Page) {
            Page<T> page = (Page<T>) list;
            this.pageNum = page.getPageNum();
            this.pageSize = page.getPageSize();
            this.total = page.getTotal();
            this.pages = page.getPages();
            this.list = page;
            this.size = page.size();
        }
    }
}

使用自己定义的PageBean

@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("/user")
    public PageBean<User> findAllUser(){
        // 分页
        PageHelper.startPage(1, 2);
        List<User> userList = userService.findAllUser();

        return new PageBean<>(userList);
    }

}
image-20210512121654241
image-20210512121654241