springboot集成pagehelper

1、导入pom.xml

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

2、application.yml配置文件

#分页插件pagehelper配置
pagehelper:
  helperDialect: mysql           #数据库方言
  supportMethodsArguments: true  #是否支持传参

3、使用分页插件,在查询前使用分页插件,原理:统一拦截sql,为其提供分页功能

复制代码
/**
     * page: 第几页
     * pageSize: 每页显示条数
 */
PageHelper.startPage(page, pageSize);

//自己的mapper查询
List<?> list = xxxMapper.query(xxx);

PageInfo<?> pageInfo = new PageInfo<>(list);

此时已经将需要的页面信息封装到pageInfo中了,如果前端不需要返回这么多内容,可以自己封装一个返回类

扩展:1、封装自己的返回类

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;
	}
}

2、举例使用

@Transactional(propagation = Propagation.SUPPORTS)
    @Override
    public PagedGridResult queryPagedComments(String itemId, Integer level, Integer page, Integer pageSize) {
        Map<String, Object> map = new HashMap();
        map.put("itemId",itemId);
        map.put("level", level);

        /**
         * page: 第几页
         * pageSize: 每页显示条数
         */
        PageHelper.startPage(page, pageSize);

        List<ItemCommentVO> list = itemsMapperCustom.queryItemComments(map);

        return setterPageGrid(list, page);
    }

    /**
     * 将pageInfo在封装一次,封装成自己项目想要的返回内容
     * @param list
     * @param page
     * @return
     */
    private PagedGridResult setterPageGrid(List<?> list, Integer page){
        PageInfo<?> pageInfo = new PageInfo<>(list);
        PagedGridResult grid = new PagedGridResult();
        grid.setPage(page);
        grid.setRows(list);
        grid.setTotal(pageInfo.getPages());
        grid.setRecords(pageInfo.getTotal());
        return grid;
    }
复制代码
posted @   晚晚同学家的pf  阅读(147)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示