<!-- 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 拦截器,实现分页