使用枚举类的一大好处就是,代码易懂,方便自己或他人维护。如,枚举状态、异常等。
下面有两个类(枚举类和实体类):
package com.zhang.enums;import lombok.Getter;/*** @Author lgz* @Description* @Date 2023/9/30.*/@Getter
public enum GlobalEnums {NORMAL(0,"正常"),FROZEN(1,"已删除"),;// @EnumValue// 这个注解,相当于告诉mp,这个字段对应数据库的字段,往数据库中写private final int number;private final String description;GlobalEnums(int number, String description) {this.number = number;this.description = description;}
}
Animal类中有一个用户状态字段:
package com.zhang.entity;@Data
public class Animal implements Serializable{// 其余字段...@ApiModelProperty(value = "删除状态(0-正常,1-已删除,2-已冻结)")private Integer delFlag;}
应用如下:
第一步:把字段的类型改成我们的enum类,如下:
package com.zhang.entity;@Data
public class Animal implements Serializable{// 其余字段...@ApiModelProperty(value = "删除状态(0-正常,1-已删除)")private GlobalEnums delFlag;}
第二步:在枚举类中,在对应的字段是添加注解@EnumValue、 @JsonValue,如下:
package com.zhang.enums;import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;/*** @Author lgz* @Description* @Date 2023/9/30.*/@Getter
public enum GlobalEnums {NORMAL(0,"正常"),FROZEN(1,"已删除"),;@EnumValue// @EnumValue相当于告诉mp,这个字段对应数据库的字段,往数据库中写private final int number;@JsonValue// @JsonValue加在对应的字段是会显示对应的信息,// 比如,如果加到“number”上就返回个数字给前端,// 加到“description"上就返回”字符串“,// 如果不使用这个注解就返回“NORMAL”或“FROZEN”给前端。private final String description;GlobalEnums(int number, String description) {this.number = number;this.description = description;}
}
第三步:在properties或者yml文件中添加如下配置:
mybatis-plus.configuration.default-enum-type-handler=com.baomidou.mybatisplus.extension.handlers.MybatisEnumTypeHandler
第四步:测试:
@GetMapping(value = "/listOfAll")public Result<?> listOfAll() {return Result.OK(animalService.listAnimals());}