使用MybatisPlus分页插件

mybatisPlus官网 https://www.baomidou.com/

  1. 配置分页插件
  2. 编写controller方法
    (1)需要参数:分页相关的参数(当前页、每页显示记录数)
    (2)需要参数:条件参数
  3. 调用service的方法实现条件分页查询

1. 配置分页插件

官方示例代码:

@Configuration
@MapperScan("scan.your.mapper.package")
public class MybatisPlusConfig {

    /**
     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
						//H2更换成需要的数据库,比如MYSQL
        return interceptor;
    }

    @Bean
    public ConfigurationCustomizer configurationCustomizer() {
        return configuration -> configuration.setUseDeprecatedExecutor(false);
    }
}

编写controller方法,调用service方法实现条件分页查询

    /**
     * 条件分页查询
     * page 当前页
     * limit 每页显示的记录数
     */
    @ApiOperation("条件分页查询")
    @GetMapping("{page}/{limit}")
    public Result pageQueryRole(@PathVariable long page, @PathVariable long limit, SysRole sysRoleQueryVo){
        //一般来说调用service方法实现,controller层不写业务逻辑代码
        //1. 创建page对象,传递分页相关的参数
        Page<SysRole> pageParam = new Page<>(page,limit);
        //2. 封装条件,判断条件是否为空,不为空进行封装
        LambdaQueryWrapper<SysRole> wrapper = new LambdaQueryWrapper<>();
        String roleName = sysRoleQueryVo.getRoleName();
        if (!StringUtils.isEmpty(roleName)){
            wrapper.like(SysRole::getRoleName,roleName);    //封装条件查询,like:模糊查询
        }
        //3. 传入分页需要的参数和查询条件,调用service方法实现分页条件查询
        Page<SysRole> result = sysRoleService.page(pageParam, wrapper);
        return Result.ok(result);
    }
posted @ 2023-05-12 21:00  ︶ㄣ演戲ㄣ  阅读(23)  评论(0)    收藏  举报