SpringBoot引入PageHelper插件实现分页功能

前言:
在初始搭建springbooot框架的时候集成了分页功能,第一时间想到的是通过PageHelper来实现,传统的分页功能代码实现起来比较繁琐,通过PageHelper来实现大大简化了代码量从而节省了开发的时间。

1.pom.xml中导入PageHelper依赖

        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>4.1.3</version>
        </dependency>

2.,mybatis-config.xml中引入PageHelper插件

<!--5.0之前的版本都是写PageHelper, 5.0之后要换成PageInterceptor-->
    <plugins>
        <plugin interceptor="com.github.pagehelper.PageHelper">
            <!--设置数据库的类型-->
            <property name= "dialect"  value= "mysql" />
            <!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->
            <!-- 和startPage中的pageNum效果一样-->
            <property name= "offsetAsPageNum"  value= "false" />
            <!-- 设置为true时,使用RowBounds分页会进行count查询 -->
            <property name= "rowBoundsWithCount"  value= "false" />
            <!-- 设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 -->
            <!-- (相当于没有执行分页查询,但是返回结果仍然是Page类型)-->
            <property name= "pageSizeZero"  value= "true" />
            <!--设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果-->
            <property name= "reasonable"  value= "false" />
            <!-- 支持通过Mapper接口参数来传递分页参数 -->
            <property name= "supportMethodsArguments"  value= "false" />
            <!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page -->
            <property name= "returnPageInfo"  value= "none" />
        </plugin>
    </plugins>

3.service类中添加分页查询数据的业务类

/**
     * 通过分页的方式查询数据
     * @return
     */
    PageInfo<Customer> getCustomerByPage(int pageNum,int pageSize);

4.实现类中实现该方法通过分页的方式查询数据

 @Override
    public PageInfo<Customer> getCustomerByPage(int pageNum,int pageSize) {

        //开始分页
        PageHelper.startPage(pageNum,pageSize);

        //开始查询
        List<Customer> getAll = customerMapper.getAll();

        //将待查询的数据放在分页中
        PageInfo<Customer> pageInfo = new PageInfo<>(getAll);

        return pageInfo;
    }

5.定义接口,通过接口的方式实现分页功能

@Controller
@Api(value = "CustomerController")
@Slf4j
public class CustomerController {

    @Autowired
    private CustomerService customerService;


    @RequestMapping(value = "getAllByPage",method = RequestMethod.GET)
    @ApiOperation("分页测试")
    @ResponseBody
    public PageInfo<Customer> getAllByPage(@RequestParam int pageNum,@RequestParam int pageSize){

        log.info("开始分页了......");
        PageInfo<Customer> pageInfo = customerService.getCustomerByPage(pageNum,pageSize);
        log.info("分页结束了......");

        return pageInfo;


    }
}

6.psotman测试接口功能是否正常
pageNum:显示第几页
pageSize:每页显示多少行的记录数
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值