MybatisPlus复习

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自增,否则无效

四、逻辑删除

五、乐观锁

六、字段填充

你可能感兴趣的:(okhttp,ajax)