栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mybatis-plus通用枚举

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mybatis-plus通用枚举

通用枚举的配置可以优化代码,增强代码的可读性

效果:插入时:前端传递枚举属性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
@Slf4j
public 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 {

        @Override
        public ReleaseStatusEnum deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
            String text = jsonParser.getText();

            try {
                for (ReleaseStatusEnum releaseStatusEnum : ReleaseStatusEnum.values()) {
                    if (releaseStatusEnum.getCode().equals(Integer.valueOf(text))) {
                        return releaseStatusEnum;
                    }
                }
                return null;
            } catch (Exception e) {
                log.warn("反序列化枚举类出错", e);
                return null;
            }
        }
    }
  
    @JsonDeserialize(using = ReleaseStatusEnum.Deserializer.class)
    private ReleaseStatusEnum releaseStatus;

效果如图:

前端参数转换

 存入数据库的值

 查询展示到前端的数据

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/736672.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号