需求
数据库里存放1 2 3 ,写一个枚举类 ,1对应第一次,2对应第二次,3。。。,前端展示的数据当然也是,第一次,第二次。。。
接口
1、给前端返回列表数据
前端调用接口,数据库查询的字段为visit_stage为1,返回值visit_stage字段为第一次,
2、往数据库添加数据时,前端传的visit_stage值是"第一次"。通过枚举类的转换在数据库里存了 “1”
数据库字段
visit_stage数据类型是varchar
实体类字段
private VisitStageEnum visitStage;
枚举类
public enum VisitStageEnum implements IBaseEnum<Integer> {
一访(1, "一访"), 二访(2, "二访"), 三访(3, "三访");
VisitStageEnum(int code, String descp) {
this.code = code;
this.descp = descp;
}
private final int code;
private final String descp;
@Override
public Integer getValue() {
return code;
}
@Override
public String getDescription() {
return descp;
}
}
枚举接口
public interface IBaseEnum<T extends Serializable> extends IEnum<T>{
String getDescription();
}
yml文件中的配置
# MP 配置
mybatis-plus:
type-enums-package: com.bjbss.bbcsupport.domain
configuration:
# 3.0.8之前版本问题默认将枚举注册为EnumOrdinalTypeHandler,这是错误的方式,默认是 org.apache.ibatis.type.EnumTypeHandler
# 如果项目之中实体统一使用IEnum或注解的方式,可配置成 com.baomidou.mybatisplus.extension.handlers.EnumTypeHandler,也可省略上面的type-enums-package配置
# 配置type-enums-package只对注解方式的枚举处理能提前加载缓存.
default-enum-type-handler: org.apache.ibatis.type.EnumOrdinalTypeHandler
注:
如果不指定org.apache.ibatis.type.EnumOrdinalTypeHandler
会报异常
No enum constant com.bjbss.bbcsupport.domain.VisitStageEnum.2