通用枚举的配置可以优化代码,增强代码的可读性
效果:插入时:前端传递枚举属性code值 0,1,2 或者 枚举字面量 或者枚举属性message值 下架,发布中,暂存,数据库保存0,1,2,查询时:返回json数据 下架,发布中,暂存。
①声明通用枚举属性,使用@EnumValue标记数据库存的值,使用@JsonValue标记响应前端json的值
import com.baomidou.mybatisplus.annotation.EnumValue;import com.fasterxml.jackson.annotation.JsonValue;import lombok.Getter;import lombok.extern.slf4j.Slf4j;@Getter@Slf4jpublic enum ReleaseStatusEnum { DOWN(0, "下架"), PUBLISHING(1, "发布中"), TEMP_SAVE(2, "暂存"); ReleaseStatusEnum(Integer code, String message) { this.code = code; this.message = message; } @EnumValue private final Integer code; @JsonValue private final String message;}
②配置扫描通用枚举,两种方式任选其一即可
mybatis-plus.type-enums-package=com.xxx.localdemo.web.*.*mybatis-plus.configuration.default-enum-type-handler=com.baomidou.mybatisplus.extension.handlers.MybatisEnumTypeHandler
③如果使用枚举接收前端传递的参数,需要声明反序列化类继承JsonDeserializer<>,重写deserialize方法,使用@JsonDeserialize(using = ReleaseStatusEnum .Deserializer.class)标记反序列化规则。
public static class Deserializer extends JsonDeserializer
@JsonDeserialize(using = ReleaseStatusEnum.Deserializer.class) private ReleaseStatusEnum releaseStatus;
效果如图:
前端参数转换
存入数据库的值
查询展示到前端的数据