SpringBoot整合Mybatis-Plus分页

  1. 创建MP的配置类
package com.feiyu.common.config.mp;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: KeYu
 * @Package: com.feiyu.common.config.mp
 * @Date: 2023/05/16/22:20
 * @说明:
 */
@Configuration
@MapperScan("com.feiyu.auth.mapper")
public class MybatisPlusConfig {
    /**
     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL.H2));
        return interceptor;
    }

    @Bean
    public ConfigurationCustomizer configurationCustomizer() {
        return configuration -> configuration.setUseDeprecatedExecutor(false);
    }
}
  1. 在启动类上面设置扫描包的方式
package com.feiyu.auth;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
//配置扫描规则
@ComponentScan("com.feiyu")
public class ServiceAuthApplication {
    public static void main(String[] args) {
        SpringApplication.run(ServiceAuthApplication.class,args);
    }
}
  1. Controller编写
     * 分页条件查询
     * page当前页  limit 每页显示记录数
     * SysRoleQueryVo条件对象   用做模糊查询
     * @return
     */
    @ApiOperation("条件分页查询")
    @GetMapping("{page}/{limit}")
    public Result pageQueryRole(@PathVariable(value = "page") Long page,
                                @PathVariable(value = "limit") Long limit,
                                SysRoleQueryVo sysRoleQueryVo
                                ){
        //1.创建page对象,传递分页相关记录数
        Page<SysRole> pageParam = new Page<>(page,limit);

        //2. 封装条件,判条件是否为空,不为空进行封装
        LambdaQueryWrapper<SysRole> queryWrapper = new LambdaQueryWrapper<>();
        String roleName = sysRoleQueryVo.getRoleName();
        if (!StringUtils.isEmpty(roleName)){
            //封装
            queryWrapper.like(SysRole::getRoleName, roleName);
        }
        //调用service中的方法
        Page<SysRole> sysRolePage = sysRoleService.page(pageParam, queryWrapper);
        return Result.success(sysRolePage);
    }
posted @ 2023-05-16 22:41  南橙K  阅读(136)  评论(0)    收藏  举报