通用枚举

表中的有些字段值是固定的,可以使用 MyBatis-Plus 的通用枚举来实现

 

声明通用枚举属性

1、方式一:使用 @EnumValue 注解枚举属性

@Getter
public enum GradeEnum {

    PRIMARY(1, "小学"),
    SECONDORY(2, "中学"),
    HIGH(3, "高中");

    GradeEnum(int code, String descp) {
        this.code = code;
        this.descp = descp;
    }

    @EnumValue
    private final int code;
    private final String descp;

}

2、方式二:枚举属性,实现 IEnum 接口

public enum AgeEnum implements IEnum<Integer> {
    ONE(1, "一岁"),
    TWO(2, "二岁"),
    THREE(3, "三岁");
    
    private int value;
    private String desc;
    
    @Override
    public Integer getValue() {
        return this.value;
    }
}

 

实体属性使用枚举类型

public class User {
    /**
     * 名字
     * 数据库字段: name varchar(20)
     */
    private String name;
    
    /**
     * 年龄,IEnum接口的枚举处理
     * 数据库字段:age INT(3)
     */
    private AgeEnum age;
        
        
    /**
     * 年级,原生枚举(带{@link com.baomidou.mybatisplus.annotation.EnumValue}):
     * 数据库字段:grade INT(2)
     */
    private GradeEnum grade;
}

 

配置扫描通用枚举

mybatis-plus:
  #扫描通用枚举的包(已弃用)
  type-enums-package: com.atguigu.mybatisplus.enums

 

测试

@Test
public void testEnum(){
    User user = new User();
    user.setName("Enum");
    //设置参数为枚举项
    user.setAge(AgeEnum.THREE);
    //将@EnumValue注解所标识的属性值存储到数据库
    user.setSex(GradeEnum.HIGH);
    //INSERT INTO t_user ( username, age, sex ) VALUES ( ?, ?, ? )
    //Parameters: Enum(String), 3, 3
    int result = userMapper.insert(user);
}
posted @   半条咸鱼  阅读(193)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示