如何使用MybatisPlus进行数据分页显示
如何使用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 { @Bean public 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); }
-