使用mybatis-plus转换枚举值

1. 使用mybatis-plus转换枚举值

枚举值转换方式有很多,有以下方式:

  1. 后端写一个通用方法,只要前端传枚举类型,后端返回相应的枚举值前端去匹配

    优点:能够实时保持数据一致性

    缺点:如果有大量的枚举值转换,请求频繁,对服务造成不必要的压力,可以优化:将每个页面配置一个大的枚举,然后里边包含具体的枚举,这样操作比较繁琐,新增枚举都要修改,不推荐使用

  2. 使用注解

    以下介绍以下使用mybatis-plus的注解处理枚举值,当然也可以自定义注解完成枚举值的转换

1.1 方式一

实现IEnum方法

public enum SexEnum implements IEnum<Integer> {
    
    MALE(1, "男"),
    FEMALE(2, "女");
    
    SexEnum(Integer code, String value) {
        this.code = code;
        this.value = value;
    }
        
    private final Integer code;
    
    private final String value;
    
    @Override
    public Integer getValue() {
        return this.code;
    }
}

===================================vo=========================
    public class UserVo {
    
    private Long id;
    
    private String name;
    
    private Integer age;
    
    private String email;
    
    /**
     * VO性别类型为刚刚新建的枚举类型
     */
    private SexEnum sex;
}

yml中的配置:

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  type-enums-package: com.example.mybatisplus.enum		#枚举类的包路径,一定不也能错,否则报错

1.2 方式二

public enum SexEnum {

	MALE(1, "男"),
    FEMALE(2, "女");

    SexEnum(Integer code, String value) {
        this.code = code;
        this.value = value;
    }

	/**
     * 标记数据库存的值是code
     */
    @EnumValue
    private final Integer code;
    
    /**
     * 要返回的值
     */
    private final String value;

    public Integer getCode() {
        return code;
    }

    public String getValue() {
        return value;
    }
}

其余的都一样

posted @   行行出bug  阅读(2778)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示