Springboot MybatisPlus分页器

本文介绍了如何在MybatisPlus中配置分页插件,如PaginationInnerInterceptor,以及如何在Controller中使用分页参数进行数据检索,返回包含data、total等分页信息的结果。
摘要由CSDN通过智能技术生成

分页效果  返回data,total,size, pages,current这些参数添加MybatisPlus拦截器 -- 源代码:


import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@MapperScan("com.jx.wms.mapper") //可以将启动类中的注解移到此处
public class MybatisPlusPageConfig {
    /**
     *
     * 1 怎么来配置mybatis-plus中的插件?
     *   这里所需要的类型是MybatisPlusInterceptor,这是mybatis-plus的一个拦截器,用于配置mybatis-plus中的插件。
     * 2 为什么要使用拦截器MybatisPlusInterceptor呢?
     *    这里边的原理和mybatis分页插件的功能是一样的,工作流程如下 :
     *   (1)第一步:执行查询功能。
     *   (2)第二步:拦截器对查询功能进行拦截。
     *   (3)第三步:拦截器对查询功能的基础上做了额外的处理,达到分页的效果(功能)。
     * 3 对比配置mybatis中的插件?
     *   用的也是拦截器的方式。
     *
     * @return MybatisPlusInterceptor
     */
    /**
     * 添加分页插件
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));//如果配置多个插件,切记分页最后添加
        //interceptor.addInnerInterceptor(new PaginationInnerInterceptor()); 如果有多数据源可以不配具体类型 否则都建议配上具体的DbType
        return interceptor;
    }
}

分页的公用参数:


import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.HashMap;

@Data
@ApiModel(value = "通用分页请求入参")
public class PageParam {
    private static int  PAGE_SIZE = 10;
    private static int PAGE_NUM = 1;

    @ApiModelProperty(value = "pageSize: 页数")
    private int pageSize = PAGE_SIZE;

    @ApiModelProperty(value = "pageNum: 页脚")
    private int pageNum = PAGE_NUM;

    @ApiModelProperty(value = "param: 请求参数")
    private HashMap param;
}

分页的Controller里的接口 -- 源代码:

@WebLog(description = "请求了用户信息列表分页接口")
    @PostMapping("/listPage")
    @ApiOperation(value = "用户分页数据接口")
    public Result<IPage<User>> listPage(@RequestBody PageParam page){
        Page<User> pageUser = new Page(page.getPageNum(), page.getPageSize());
        LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(User::getName, page.getParam().get("name"));
        IPage<User> userResult = userService.page(pageUser, queryWrapper);
        log.info("user info list user:{}", userResult);
        return Result.suc(userResult);
    }

然后请求此接口就是我们刚进来看到的图一的数据格式~感谢浏览,希望多指教!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值