mybatis plus 枚举类型的使用与和数据库定义字段转换
摘要:本文演示了如何定义和使用MyBatisPlus枚举类型。首先创建UserStatus枚举类,包含NORMAL和FREEZEN两种状态,并使用@Getter注解生成get方法。然后通过@EnumValue标注value字段作为数据库存储值,使MyBatisPlus能正确映射枚举。最后在application.yml中配置default-enum-type-handler为MybatisEnum
·
定一个枚举类型
package com.wucaimu.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;
@Getter
public enum UserStatus {
NORMAL(1,"正常"),
FREEZEN(0,"冻结"),
;
private final int value;
private final String msg;
UserStatus(int value, String msg) {
this.value = value;
this.msg = msg;
}
}
Mybatis plus 处理
增加注解
package com.wucaimu.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;
@Getter
public enum UserStatus {
NORMAL(1,"正常"),
FREEZEN(0,"冻结"),
;
@EnumValue
private final int value;
private final String msg;
UserStatus(int value, String msg) {
this.value = value;
this.msg = msg;
}
}
并且,在 application.yml 中设置
mybatis-plus:
configuration:
# MyBatis 配置
map-underscore-to-camel-case: true
cache-enabled: false # 是否开启二级缓存
default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler
这个结果的返回值是 NORMAL or FREEZEN 。
如果需要返回,1 or 2 或者 汉字(msg)则需要配置
package com.wucaimu.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;
@Getter
public enum UserStatus {
NORMAL(1,"正常"),
FREEZEN(0,"冻结"),
;
@EnumValue
private final int value;
@JsonValue
private final String msg;
UserStatus(int value, String msg) {
this.value = value;
this.msg = msg;
}
}
// 给前端返回,是通过 Spring boot 控制的

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)