JAVA分页工具类

jar引入

代码示例

		<!-- pagehelper 分页插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.4</version>
        </dependency>

PageUtil工具包

代码示例

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

import javax.servlet.http.HttpServletRequest;

/**
 * 分页工具类
 * @author gxl
 */
public class PageUtil {

    protected static final ThreadLocal<MybatisPage> threadLocal = new ThreadLocal();

    public PageUtil() {
    }

    /**
     * 分页
     * @param page 当前页
     * @param pageSize  每页显示条数
     */
    public static void startPage(Integer page,Integer pageSize) {
        ServletRequestAttributes requestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
        //获取请求信息
        HttpServletRequest request = requestAttributes.getRequest();
        //获取请求头中当前页
//        Integer page = Convert.toInt(request.getParameter("page"));
        //获取请求头中每页显示条数
//        Integer pageSize = Convert.toInt(request.getParameter("pageSize"));
        if (StringUtils.isNotNull(page) && StringUtils.isNotNull(pageSize)) {
            MybatisPage mybatisPage = new MybatisPage();
            mybatisPage.setPage(page);
            mybatisPage.setPageSize(pageSize);
            threadLocal.set(mybatisPage);
        } else {
            throw new RuntimeException("分页参数为空");
        }
    }

}

/**
 * 封装分页参数
 */
class MybatisPage {
    private Integer page;
    private Integer pageSize;
    private String countSql;

    public MybatisPage() {
    }

    public Integer getPage() {
        return this.page;
    }

    public void setPage(Integer page) {
        this.page = page;
    }

    public Integer getPageSize() {
        return this.pageSize;
    }

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

    public String getCountSql() {
        return this.countSql;
    }

    public void setCountSql(String countSql) {
        this.countSql = countSql;
    }
}

PageResult返回封装参数

代码示例

import com.github.pagehelper.Page;

/**
 * 封装分页返回
 * @author gxl
 * @param <T>
 */
public class PageResult<T> {
    private Integer respCode;
    private String respDesc;
    private Integer pages = 0;
    private Integer page = 0;
    private Integer pageSize = 10;
    private Integer total = 0;
    private T result;

    public Integer getRespCode() {
        return respCode;
    }

    public void setRespCode(Integer respCode) {
        this.respCode = respCode;
    }

    public String getRespDesc() {
        return respDesc;
    }

    public void setRespDesc(String respDesc) {
        this.respDesc = respDesc;
    }

    public Integer getPages() {
        return this.pages;
    }

    public void setPages(Integer pages) {
        this.pages = pages;
    }

    public Integer getPage() {
        return this.page;
    }

    public void setPage(Integer page) {
        this.page = page;
    }

    public Integer getPageSize() {
        return this.pageSize;
    }

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

    public Integer getTotal() {
        return this.total;
    }

    public void setTotal(Integer total) {
        this.total = total;
    }

    public T getResult() {
        return result;
    }

    public void setResult(T result) {
        this.result = result;
    }

    public PageResult() {
    }

    public PageResult(Integer respCode, String respDesc, T result, Integer page, Integer pageSize, Integer total) {
        this.respCode = respCode;
        this.respDesc = respDesc;
        this.page = page;
        this.pageSize = pageSize;
        this.total = total;
        this.result = result;
        if (total > 0) {
            this.setPages(total % pageSize != 0 ? total / pageSize + 1 : total / pageSize);
        }

    }

    public PageResult(String respDesc) {
        this.respCode = -1;
        this.respDesc = respDesc;
    }

    public static <T> PageResult<T> success(T data) {
        Page<T> page = (Page)data;
        return new PageResult(0, "请求成功", data, page.getPageNum(), page.getPageSize(), (int)page.getTotal());
    }

    public static PageResult error(String msg) {
        return new PageResult(msg);
    }
}

调用示例

代码示例

public static void main(String[] args) {
        //分页调用
        PageUtil.startPage(page,pageSize);
        //数据集合
        List data = new ArrayList<>();
        //返回结果
        return PageResult.success(data);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值