1.用枚举类型接收前端请求参数(返回前端对应的字段也需要用枚举类型)
@Data
public class StudentForm implements Serializable {
private static final long serialVersionUID = 1L;
private Integer no;
private String name;
private SexEnum sex;
}
2. 枚举具体实现
package com.my.demo.model.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.apache.commons.lang.StringUtils;
@Getter
@AllArgsConstructor
@NoArgsConstructor
public enum SexEnum {
MALE("1","男"),
FEMALE("2","女")
;
@EnumValue
private String code;
@JsonValue
private String text;
@JsonCreator
public static SexEnum fromString(String value){
for (SexEnum e: values()) {
if(StringUtils.equals(e.getCode(), value)){
return e;
}
}
throw new RuntimeException();
}
}
3.表对应的实体
@Data
@TableName("student")
public class Student extends BaseDo {
@TableId(value = "id", type= IdType.AUTO)
private Integer id;
private Integer no;
private String name;
private SexEnum sex;
private BigDecimal money;
private String isDelete;
}
4.配置枚举扫描(不可缺少的步骤)
mybatis-plus.type-enums-package=com.my.demo.model.enums
5.优势: 逻辑层直接判断 + 接收前端数据/返回给前端/入表都不用再转化
form.getSex() == SexEnum.MALE