如何使用MybatisPlus进行数据的分页呢?
- 使用Mybatis Plus提供的分页插件来简化开发,在MybatisPlusInterceptor的拦截器中添加自动分页的PaginationInnerInterceptor拦截器,当前配置需要交给spring的bean管理,类上添加注解@Configuration。
-
package com.app.studypro.config;import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;/*** 配置MybatisPlus的配置信息** @author Administrator*/ @Configuration public class MybatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {// 获取MybatisPlus的拦截器链MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();// 添加分页拦截器PaginationInnerInterceptor,实现自动分页mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());return mybatisPlusInterceptor;}}
-
- 在需要数据分页处构建Page对象,并根据自己的查询条件查找数据库,分页的信息将会直接存储到Page对象中。
-
/*** 用户信息分页** @param page 当前页* @param pageSize 每页显示条数* @param username 用户名* @return 返回分页用户信息*/@GetMapping("/page")public ResultBean<Page<User>> page(int page, int pageSize, String username) {log.info("page = {},pageSize = {},username = {}", page, pageSize, username);// 1、构造简单分页模型Page<User> pageInfo = new Page<>(page, pageSize);// 2、构造条件构造器LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();// 3、添加用户名过滤条件,使用模糊匹配,不为空时才生效queryWrapper.like(StringUtils.isNotEmpty(username), User::getUsername, username);// 4、添加排序条件queryWrapper.orderByDesc(User::getUpdateTime);// 5、执行查询,查询的结果将会直接存在于pageInfo对象中userService.page(pageInfo, queryWrapper);return ResultBean.success(pageInfo);}
-