PageHelper--分页

PageHelPer是什么?

基于Mybatis框架实现的一个分页插件

PageHelper应用原理?

PageHelper底层基于Mybatis框架中的拦截器规范,做了一个分页拦截器的具体实现,假如我们调用的PageHelper.startPage()方法,底层会在Mybatis层面启动一拦截器,在拦截器中,对SQL查询进行拦截,查询到以后对SQL进一步处理。
在这里插入图片描述

PageHelper在SpringBoot工程中的应用。

第一步: 添加依赖

<!--PageHelper依赖-->
        <!--
        此依赖中的api封装了mybatis中分页查询操作
        其原理:
        当我们执行sql查询时,假如我们调用了PageHelper.startPage()方法
        底层会在mybatis层面启动拦截器,在拦截器中对sql查询进行拦截,
        拦截到sql以后,对sql进行处理
        -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.10</version>
        </dependency>

第二步: 创建工具类获取request对象

package com.cy.pj.sys.common.util;

import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;

/**
 * 1.获取request对象
 */
public class ServletUtil {

    /**
     * 获取request请求
     */
    public static HttpServletRequest getRequest(){
        return getServletAttributes().getRequest();
    }
    /**
     * 通过RequestContextHolder类型获取请求属性
     */
    public static ServletRequestAttributes getServletAttributes(){
        return  (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
    }
}

第三步: 创建StringUtil工具类对字符串是否为空进行判断

package com.cy.pj.sys.common.util;

public class StringUtil {
    public static boolean isEmpty(String str){
        return str==null||"".equals(str);
    }
}

第四步: 获取request中的数据,进行分页操作

package com.cy.pj.sys.common.util;


import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.util.StringUtil;

import javax.servlet.http.HttpServletRequest;

/**
 *2.获取request中的数据,进行分页操作
 */
public class PageUtil {

    public static <T>Page<T> startPage(){
        HttpServletRequest request = com.cy.pj.sys.common.util.ServletUtil.getRequest();
        //页面大小(每页最多显示多少条记录)
        String pageSizeStr= request.getParameter("pageSize");
        //当前页码值(要查第几页的数据)
        String pageCurrentStr= request.getParameter("pageCurrent");
        System.out.println("(记录数)pageSize="+pageSizeStr);
        System.out.println("(页数)pageCurrent="+pageCurrentStr);
        //在此位置调用PageHelper中的一个方法启动分页
        //在项目中去添加一个PageHelper依赖(后缀是starter的)
        Integer pageCurrent=//如果判断成立,默认是1 如果不成立,会将url中的数据从字符串转换成数字
                StringUtil.isEmpty(pageCurrentStr)?1:Integer.parseInt(pageCurrentStr);
        Integer pageSize=
                StringUtil.isEmpty(pageSizeStr)?10:Integer.parseInt(pageSizeStr);
        //启动PageHelper中的分页拦截器(PageInterceptor)
        return PageHelper.startPage(pageCurrent,pageSize);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值