栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

最新SpringBoot集成PageHelper

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

最新SpringBoot集成PageHelper

SpringBoot集成pagehelper依赖:

pagehelper有两个依赖,分别说一下区别:

第一种:

		
		
			com.github.pagehelper
			pagehelper
			5.1.2
		

使用这个依赖需要我们手动配置拦截器:

package com.zlp.cps.config;

import com.github.pagehelper.PageInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Properties;


@Configuration
public class PageHelperConfig {
    @Bean
    public PageInterceptor pageHelper() {
      	// 注意这里使用的 PageInterceptor
        PageInterceptor pageInterceptor = new PageInterceptor();
        Properties properties = new Properties();
        properties.setProperty("offsetAsPageNum","true");
        properties.setProperty("rowBoundsWithCount","true");
        properties.setProperty("reasonable","true");
        properties.setProperty("helperDialect", "mysql");
        properties.setProperty("supportMethodsArguments","true");
        properties.setProperty("params","count=countSql");
        pageInterceptor.setProperties(properties);
        return pageInterceptor;
    }
}

这里有个小坑:之前注册pagehelper拦截器都是用的PageHelper,新版已经改了,官网原话:

特别注意,新版拦截器是 com.github.pagehelper.PageInterceptor。 com.github.pagehelper.PageHelper 现在是一个特殊的 dialect 实现类,是分页插件的默认实现类,提供了和以前相同的用法。(https://pagehelper.github.io/docs/howtouse/)

这种还得手动配置,一般不推荐,企业开发一般也不会用。

第二种:

		
		
			com.github.pagehelper
			pagehelper-spring-boot-starter
			1.4.1
		

可以看一下导入两个依赖的区别:


可以看出导入第二种依赖是多了两个依赖包,这两个依赖包就是自动配置拦截器,推荐使用。

pagehelper使用:

使用比较简单,直接看例子:

    public baseResponse getTbGoods(ProgramReq req) {
        Integer materialTypeId = req.getMaterialTypeId();
        int pageNum = Integer.parseInt(String.valueOf(req.getPageNum()));
        int pageSize = Integer.parseInt(String.valueOf(req.getPageSize()));
      	// 第一步 开启分页
        PageHelper.startPage(pageNum, pageSize);
      	// 第二步 根据实际业务sql语句查询
        List tbCpsGoodList = wmCpsMapper.selectTbShopByMaterialTypeId(materialTypeId);
        if (ListUtil.isEmpty(tbCpsGoodList)) {
            return baseResponse.successRes(GlobalEnum.RESPONSE_NO_DATA);
        }
      	// 第三步 通过PageInfo对象可以获取分页后的信息 常用的如下:
        PageInfo tbCpsGoodPageInfo = new PageInfo<>(tbCpsGoodList);
        int pages = tbCpsGoodPageInfo.getPages(); // 总页数
        long total = tbCpsGoodPageInfo.getTotal(); // 总数
        int curPageNum = tbCpsGoodPageInfo.getPageNum(); // 当前页
        int curPageSize = tbCpsGoodPageInfo.getPageSize(); // 当前页大小
        baseResponse baseResponse = new baseResponse();
        baseResponse.setPageNum(curPageNum);
        baseResponse.setPageSize(curPageSize);
        baseResponse.setTotal(total);
        baseResponse.setPages(pages);
        baseResponse.setData(tbCpsGoodList);
        return baseResponse;
    }

三步解决分页问题

看到这里应该能快速上手了,有什么问题可以留言,也可以私聊,后续可以根据需要更新一篇pagehelper分页原理。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/697548.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号