SpringBoot 整合 mybatis-pagehelper

187 阅读1分钟

1.引入分页插件依赖

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

2.配置yml

# 分页插件配置
pagehelper:
  helper-dialect: mysql  #所支持的数据库
  support-methods-arguments: true #是否支持传参

3.使用分页插件,在查询前使用分页插件

原理:统一拦截sql,为其提供分页功能

/**
 * page: 要查询第几页
 * pageSize: 要求每页所显示的条数
 */
 
 PageHelper.startPage(page, pageSize);

4.分页数据封装到PagedGridResult.java 传给前端

private PagedGridResult setterPageGrid(List<?> list, Integer page){
        PageInfo<?> pageList = new PageInfo<>(list);
        PagedGridResult grid = new PagedGridResult();
        grid.setPage(page);
        grid.setRows(list);
        grid.setTotal(pageList.getPages());
        grid.setRecords(pageList.getTotal());
        return grid;
    }
    
// 例如

 	PageHelper.startPage(page, pageSize);
    	//已分页处理的数据。
        List<ItemCommentVo> list = itemsMapperCustom.queryItemComments(map); 
        return setterPageGrid(list,page);
import java.util.List;
public class PagedGridResult {
    private int page;  //当前页数
    private int total; // 总页数
    private long records; // 总记录数
    private List<?> rows; // 每页显示的内容

    public int getPage() {
        return page;
    }

    public void setPage(int page) {
        this.page = page;
    }

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public long getRecords() {
        return records;
    }

    public void setRecords(long records) {
        this.records = records;
    }

    public List<?> getRows() {
        return rows;
    }

    public void setRows(List<?> rows) {
        this.rows = rows;
    }
}