SpringBoot集成pagehelper分页

SpringBoot集成pagehelper分页

1.添加pagehelper包:

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

2.yml配置文件中添加配置:

#pagehelper
pagehelper:
  helper-dialect: mysql
  reasonable: false
  supportMethodsArguments: true
  pageSizeZero: false
  params: count=countSql

3.Service中添加代码:

@Override
public Page<LogModel> pageList(LogModel record, int pageNum, int pageSize) {
    PageHelper.startPage(pageNum, pageSize);
    return iLogDao.pageList(record);
}
PageHelper是通用,会在执行pageList sql 之前执行count语句。
pageNum页码
pageSize每页显示条数
record查询条件
pageList的查询语句跟普通的list查询无异。

4.PageInfo:
PageInfo可以使用PageHelper的,也可以自己定义。主要是定义返回的数据结构的。
我前端使用的是LayUI,返回的数据结构是自己定义的。
import java.io.Serializable;
import java.util.Collection;
import java.util.List;

import com.github.pagehelper.Page;

public class PageInfo<T> implements Serializable{
    private static final long serialVersionUID = 6502920935250686910L;

    private int pageNum;
    private int pageSize;
    private long total;
    private int pages;
    private List<T> datas;
    private boolean isFirstPage = false;
    private boolean isLastPage = false;
    
    private int status = 0;
    
    public PageInfo() {
        super();
    }
    public PageInfo(List<T> list) {
        if(list instanceof Page) {
            Page<T> page = (Page<T>) list;
            this.pageNum = page.getPageNum();
            this.pageSize = page.getPageSize();
            this.pages = page.getPages();
            this.total = page.getTotal();
            
            this.datas = page;
        } else if (list instanceof Collection) {
            this.pageNum = 1;
            this.pageSize = list.size();
            this.pages = 1;
            this.total = list.size();
            
            this.datas = list;
        }
        if(list instanceof Collection) {
            judgePageBoudary();
        }
    }
    
    /**
     * 判定页面边界
     */
    private void judgePageBoudary() {
        this.isFirstPage = this.pageNum == 1;
        this.isLastPage = pageNum == pages;
    }
    
    public int getPageNum() {
        return pageNum;
    }
    public void setPageNum(int pageNum) {
        this.pageNum = pageNum;
    }
    public int getPageSize() {
        return pageSize;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
    public long getTotal() {
        return total;
    }
    public void setTotal(long total) {
        this.total = total;
    }
    public int getPages() {
        return pages;
    }
    public void setPages(int pages) {
        this.pages = pages;
    }
    public List<T> getDatas() {
        return datas;
    }
    public void setDatas(List<T> datas) {
        this.datas = datas;
    }
    public boolean isFirstPage() {
        return isFirstPage;
    }
    public void setFirstPage(boolean isFirstPage) {
        this.isFirstPage = isFirstPage;
    }
    public boolean isLastPage() {
        return isLastPage;
    }
    public void setLastPage(boolean isLastPage) {
        this.isLastPage = isLastPage;
    }
    public int getStatus() {
        return status;
    }
    public void setStatus(int status) {
        this.status = status;
    }
}

5.Controller:

@RequestMapping(value = "/user/pageList", method = RequestMethod.GET)
@ResponseBody
public Object pageList(HttpServletRequest request, UserModel model,
            @RequestParam int pageNum, @RequestParam int pageSize) {
    List<UserModel> list = iUserService.pageList(model, pageNum, pageSize);
    PageInfo<UserModel> pageInfo = new PageInfo<UserModel>(list);
    return pageInfo;
}

SpringBoot集成PageHelper分页完成。
原文地址:https://www.cnblogs.com/se7end/p/9598669.html