- 创建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);
}
}
- 在启动类上面设置扫描包的方式
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);
}
}
- 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);
}