pagehelper有两个依赖,分别说一下区别:
第一种:
com.github.pagehelper pagehelper5.1.2
使用这个依赖需要我们手动配置拦截器:
package com.zlp.cps.config; import com.github.pagehelper.PageInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.util.Properties; @Configuration public class PageHelperConfig { @Bean public PageInterceptor pageHelper() { // 注意这里使用的 PageInterceptor PageInterceptor pageInterceptor = new PageInterceptor(); Properties properties = new Properties(); properties.setProperty("offsetAsPageNum","true"); properties.setProperty("rowBoundsWithCount","true"); properties.setProperty("reasonable","true"); properties.setProperty("helperDialect", "mysql"); properties.setProperty("supportMethodsArguments","true"); properties.setProperty("params","count=countSql"); pageInterceptor.setProperties(properties); return pageInterceptor; } }
这里有个小坑:之前注册pagehelper拦截器都是用的PageHelper,新版已经改了,官网原话:
特别注意,新版拦截器是 com.github.pagehelper.PageInterceptor。 com.github.pagehelper.PageHelper 现在是一个特殊的 dialect 实现类,是分页插件的默认实现类,提供了和以前相同的用法。(https://pagehelper.github.io/docs/howtouse/)
这种还得手动配置,一般不推荐,企业开发一般也不会用。
第二种:
com.github.pagehelper pagehelper-spring-boot-starter1.4.1
可以看一下导入两个依赖的区别:
可以看出导入第二种依赖是多了两个依赖包,这两个依赖包就是自动配置拦截器,推荐使用。
使用比较简单,直接看例子:
public baseResponse getTbGoods(ProgramReq req) { Integer materialTypeId = req.getMaterialTypeId(); int pageNum = Integer.parseInt(String.valueOf(req.getPageNum())); int pageSize = Integer.parseInt(String.valueOf(req.getPageSize())); // 第一步 开启分页 PageHelper.startPage(pageNum, pageSize); // 第二步 根据实际业务sql语句查询 ListtbCpsGoodList = wmCpsMapper.selectTbShopByMaterialTypeId(materialTypeId); if (ListUtil.isEmpty(tbCpsGoodList)) { return baseResponse.successRes(GlobalEnum.RESPONSE_NO_DATA); } // 第三步 通过PageInfo对象可以获取分页后的信息 常用的如下: PageInfo tbCpsGoodPageInfo = new PageInfo<>(tbCpsGoodList); int pages = tbCpsGoodPageInfo.getPages(); // 总页数 long total = tbCpsGoodPageInfo.getTotal(); // 总数 int curPageNum = tbCpsGoodPageInfo.getPageNum(); // 当前页 int curPageSize = tbCpsGoodPageInfo.getPageSize(); // 当前页大小 baseResponse baseResponse = new baseResponse(); baseResponse.setPageNum(curPageNum); baseResponse.setPageSize(curPageSize); baseResponse.setTotal(total); baseResponse.setPages(pages); baseResponse.setData(tbCpsGoodList); return baseResponse; }
三步解决分页问题
看到这里应该能快速上手了,有什么问题可以留言,也可以私聊,后续可以根据需要更新一篇pagehelper分页原理。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)