一、前言1.1、关于枚举类① 枚举是JDK1.5中的新功能,我们可以使用枚举很好的去描述一些业务场景:一年有四季、人类有男女...
② 同样我们在业务层面会有很多,比如状态属性、分类属性等等,我们可以把他们放在数据库里面以达到动态读取的效果 。
1.2、我的枚举使用场景在我的程序中有很多是、否属性的字段 。为了较好地解决这个业务场景我使用枚举进行了属性值得记录,同时枚举和mybatisPlus结合,使得开发效率也有小小的提升 。
二、整合过程2.1、配置扫描包因为是与MybatisPlus整合,所以要在yml文件中配置枚举类的扫描包
# mybatisPlusmybatis-plus:mApper-locations: classpath*:/mapper/**/*.xml# 枚举类扫描typeEnumsPackage: com.XXX.commons.enumsglobal-config:#数据库相关配置db-config:#主键类型AUTO:"数据库ID自增", INPUT:"用户输入ID", ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID";id-type: AUTO#字段策略 IGNORED:"忽略判断",NOT_NULL:"非 NULL 判断"),NOT_EMPTY:"非空判断"field-strategy: NOT_NULL#驼峰下划线转换column-underline: truelogic-delete-value: 1logic-not-delete-value: 0banner: false#原生配置configuration:log-impl: org.Apache.ibatis.logging.stdout.StdOutImplmap-underscore-to-camel-case: truecache-enabled: falsecall-setters-on-nulls: truejdbc-type-for-null: 'null'default-enum-type-handler: org.apache.ibatis.type.EnumOrdinalTypeHandler
2.2、创建枚举类(以是否XXX属性为例)import com.baomidou.mybatisplus.annotation.EnumValue;import com.fasterxml.jackson.annotation.JsonValue;/*** @author XA* date 2021/3/19 16:04 * description: “是否”枚举类*/public enum TureOrFalseEnum {STATE_1(0, "否"),STATE_2(1, "是"),;TureOrFalseEnum(Integer key, String value) {this.value = https://www.isolves.com/it/cxkf/jiagou/2022-01-20/value;this.key = key;}@EnumValueprivate Integer key;@JsonValueprivate String value;public Integer getKey() {return key;}public String getValue() {return value;}public static String getValueBykey(Integer key){TureOrFalseEnum[] applicationStateEnums = values();for (TureOrFalseEnum itemEnum : applicationStateEnums) {if (itemEnum.key.equals(key)) {return itemEnum.getValue();}}return null;}public static Integer getKeyByValue(String value){for (TureOrFalseEnum itemEnum : TureOrFalseEnum.values()) {if(value.equals(itemEnum.getValue())){return itemEnum.getKey();}}return null;}}
2.3、实体类中设置类型为对应的枚举import com.bh.openapi.commons.enums.TureOrFalseEnum;import lombok.Data;@Datapublic class TestDTO {/*** 是否删除*/private TureOrFalseEnum deleted;}
2.4、达到效果① 我们在写入数据时字段属性为1
② 我们在进行数据查询时,deleted属性返回的是中文描述:是
三、注意事项3.1、配置枚举扫描如果你不配置枚举扫描包,会导致在进行数据查询后无法做对应的数据类型转换 。
3.2、枚举类的属性值注解枚举类中的key使用 @EnumValue
枚举类中的属性描述使用 @JsonValue
3.3、模型层属性类型POJO类中要修改属性的类型为你所需要的对应的枚举 。
【MybatisPlus中实体类属性对应枚举类实现】
推荐阅读
- 红茶中作用,立顿红茶有什么功效与作用
- |职场中如何学会说话?什么是会说话,学会这么说话让才能别人爱听
- 手机游戏|职场从来都不是平静如水,人际交往要清理,社交中提防这几类人
- 中国古典乐器有哪些
- 风水运行中的吉凶分析
- 慢跑腿会变粗吗?
- 中国画四君子的发展历程及道德渊源
- 夏季户外活动,怎么做到不中暑呢?
- 在偏见、繁忙中这样坚持跑步才有效果
- 毛尖红茶的作用,毛尖茶的中药功效与作用