SpringBoot maven项目使用PageHelper分页插件 图文教程

第一步:pom.xml中添加分页 和pageHelper依赖
        
        
            com.github.pagehelper
            pagehelper-spring-boot-starter
            1.2.12
        
插件的启动器


        
            com.github.pagehelper
            pagehelper
            5.1.0
        

SpringBoot maven项目使用PageHelper分页插件 图文教程_第1张图片

第二步:修改application.properties文件,在当前文件中添加分页启动器属性

#pagehelper
#指定数据库方言
pagehelper.helperDialect=mysql
#启用分页的合理性
pagehelper.reasonable=true
#支持方法传参
pagehelper.supportMethodsArguments=true

SpringBoot maven项目使用PageHelper分页插件 图文教程_第2张图片

第三步:代码实现

SpringBoot maven项目使用PageHelper分页插件 图文教程_第3张图片

使用PageUtils的好处就是jsp页面取值非常简单  只需要写${fenye}  就可以正常实现功能了

SpringBoot maven项目使用PageHelper分页插件 图文教程_第4张图片

 

PageUtils代码如下  

import javax.servlet.http.HttpServletRequest;

public class PageUtils {
    // 当前页
    private int cpage;
    // 总页数
    private int totalPage;
    // 总条数
    private int count;
    // 分页单位
    private int pageSize;
    // 上一页
    private int prevPage;
    // 下一页
    private int nextPage;
    // 起始位置
    private int startPage;

    public PageUtils(int cpage, int count, int pageSize, String url, HttpServletRequest request) {
        this.count = count;
        this.pageSize = pageSize;
        // 处理总页数
        this.initTotalPage();
        // 处理当前页
        this.initCpage(cpage);
        // 处理上一页
        this.initPrevPage();
        // 处理下一页
        this.initnextPage();
        // 处理起始位置
        this.initStartPage();
        // 把路径封装
        this.initFenye(request, url);

    }

    
    //把路径封装
    private void initFenye(HttpServletRequest request, String url) {
        // 如果url中有? 后面追加条件时用& url中没有? 后面追加?
        String flag = url.indexOf("?") != -1 ? "&" : "?";
        String fenye = "当前" + cpage + "/" + totalPage + "页/共" + count + "条数据 首页    上一页   下一页    尾页";

        request.setAttribute("fenye", fenye);
    }

    // 处理起始位置
    private void initStartPage() {
        // 计算limit后的第一个参数 (当前页-1)*pageSize
        this.startPage = (cpage - 1) * pageSize;

    }

    // 处理下一页
    private void initnextPage() {
        if (cpage >= totalPage) {
            this.nextPage = totalPage;
        } else {
            this.nextPage = cpage + 1;
        }

    }

    // 处理上一页
    private void initPrevPage() {
        // 上一页
        if (cpage <= 1) {
            this.prevPage = 1;
        } else {
            this.prevPage = cpage - 1;
        }
    }

    // 处理总页数
    private void initTotalPage() {
        // 计算总页数 ==总条数/pageSize 有余数+1
        this.totalPage = (count / pageSize) + (count % pageSize == 0 ? 0 : 1);

    }

    // 处理当前页
    private void initCpage(int cpage2) {
        if (cpage2 >= totalPage) {// 如果当前页大一等于最后一页 当前页=最后一页
            this.cpage = totalPage;
        } else if (cpage2 <= 1) {// 如果当前页小一等于1 当前页=1
            this.cpage = 1;
        } else {
            this.cpage = cpage2;
        }
    }

    public int getCpage() {
        return cpage;
    }

    public void setCpage(int cpage) {
        this.cpage = cpage;
    }

    public int getTotalPage() {
        return totalPage;
    }

    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public int getPrevPage() {
        return prevPage;
    }

    public void setPrevPage(int prevPage) {
        this.prevPage = prevPage;
    }

    public int getNextPage() {
        return nextPage;
    }

    public void setNextPage(int nextPage) {
        this.nextPage = nextPage;
    }

    public int getStartPage() {
        return startPage;
    }

    public void setStartPage(int startPage) {
        this.startPage = startPage;
    }

}

你可能感兴趣的:(SpringBoot maven项目使用PageHelper分页插件 图文教程)