MybatisPlus复习
一、通用枚举类
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;
@Getter
public enum SexEnum {
MALE(1, "男"),
FEMALE(2, "女");
@EnumValue
private Integer sex;
private String sexName;
SexEnum(Integer sex, String sexName) {
this.sex = sex;
this.sexName = sexName;
}
}
配置扫描通用枚举
mybatis-plus:
# 配置扫描通用枚举
type-enums-package: com.atguigu.mybatisplus.enums
二、执行分析插件
踩坑!!!! 旧版本是SqlExplainInterceptor 、新版本是BlockAttackInnerInterceptor
‘SqlExplainInterceptor’,作用是分析 处理 DELETE UPDATE 语句, 防止小白或者恶意 delete update 全表操作。
配置文件案例
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
// 拦截器链条
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// 分页插件
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
// 防止全表更新与删除插件
interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());
// 启用乐观锁插件
// @Version
// private Integer version;
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return interceptor;
}
}
全局异常处理
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
@ControllerAdvice
@ResponseBody
public class GlobalExceptionHandler {
@ExceptionHandler(MybatisPlusException.class)
public String handleResourceNotFoundException(MybatisPlusException e) {
System.out.println(e.getMessage());
if (e.getMessage().contains("Prohibition of full table")){
return "禁止全表操作!!/(ㄒoㄒ)/~~";
}
return "global exception";
}
}
三、主键策略
IdType.ASSIGN_ID(默认)
基于雪花算法的策略生成数据id,与数据库id是否设置自增无关
IdType.AUTO
使用数据库的自增策略,注意,该类型请确保数据库设置了id自增,否则无效