<!-- MyBatis-Plus 依赖 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.3.4</version>
</dependency>

使用

@Override
public RespBean getUserPage(UserQueryPage queryPage) {
    Page<User> page = new Page<>(queryPage.getPageNum(),queryPage.getPageSize());
    page.addOrder(queryPage.getOrderItem());
    LambdaQueryWrapper<User> userLambdaQueryWrapper = new LambdaQueryWrapper<>();
    if (StringUtils.isNotBlank(queryPage.getUserName())){
        userLambdaQueryWrapper.like(User::getUserName,queryPage.getUserName());
    }
    if (StringUtils.isNotBlank(queryPage.getPhone())){
        userLambdaQueryWrapper.like(User::getPhone,queryPage.getPhone());
    }
    if (StringUtils.isNotBlank(queryPage.getEmail())){
        userLambdaQueryWrapper.like(User::getEmail,queryPage.getEmail());
    }
    if (StringUtils.isNotBlank(queryPage.getRealName())){
        userLambdaQueryWrapper.like(User::getRealName,queryPage.getRealName());
    }

    Page<User> userPage = baseMapper.selectPage(page, userLambdaQueryWrapper);
    return RespBean.success(userPage);
}

直接看重点

一个 Page<User> page = new Page<>(queryPage.getPageNum(),queryPage.getPageSize());

pageNum(当前页)和pageSize(一个多少条数据)

然后使用就是selectPage方法(我们在原生时一般是通过selectList这样查,这是全部数据的方法)

Page<User> userPage = baseMapper.selectPage(page, userLambdaQueryWrapper);

***到这步如果有打印sql会发现不生效,观察语句是

这里已经非常明显了,没有生效,原因很简单,要实现分页,需要注入插件

@Configuration
public class MybatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        //分页插件
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        //乐观锁插件
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return interceptor;
    }
}

注入新的MybatisPlusInterceptor 拦截器,实现分页

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐