自己封装分页工具类(PageData)
导入分页依赖
<!-- springboot分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>3.1.2</version>
</dependency>
配置文件 application.properties
pagehelper.helper-dialect=mysql
pagehelper.params=count=countSql
pagehelper.reasonable=false
pagehelper.support-methods-arguments=true
yml格式的
#pagehelper分页插件配置
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true
封装的分页工具类
直接上代码
@Data
public class PageData implements Serializable {
private static final long serialVersionUID = -258640836642412544L;
@JsonIgnore
public static final Integer PAGE_SIZE=20;
/**
* 总条数
*/
private Long total;
/**
* 总页数
*/
private Integer totalPages;
/**
* 是否为最后一页
*/
private Boolean lastPage=false;
/**
* 数据
*/
private List pageData;
/**
*
* @param pageData 数据
* @param page 当前页
*/
public PageData(Page pageData, Integer page){
if(pageData==null){
return;
}
this.pageData=pageData.getResult();
this.total=pageData.getTotal();
this.totalPages=pageData.getPages();
if(page.equals(totalPages)){
this.lastPage=true;
}
}
public PageData(List data){
this.total=1L;
this.totalPages=1;
this.pageData=data;
this.lastPage=true;
}
public PageData(List data,Long total,Integer totalPages,Integer page){
if(data==null){
return;
}
this.pageData=data;
this.total=total;
this.totalPages=totalPages;
if(page.equals(totalPages)){
this.lastPage=true;
}
}
public void setDataList(List data){
this.pageData=data;
}
}
然后把我们的分页封装返回
@Override
public PageData listShop(Long cid, String name, Integer type, Integer pageNo,Integer pageSize) {
QueryWrapper<CShop> queryWrapper = new QueryWrapper();
queryWrapper.eq("cid", cid).eq("flag", BusEnum.BUS_FLAG_0.getCode());
if (type != null) {
queryWrapper.eq("type", type);
}
if (StringUtils.isNotEmpty(name)) {
queryWrapper.likeRight("name", name);
}
//PageHelper分页
PageHelper.startPage(pageNo, pageSize);
Page<CShop> list = (Page<CShop>) this.baseMapper.selectList(queryWrapper);
//封装返回
return new PageData(list, pageNo);
}