Mybatis-plus使用枚举类型定义属性映射数据库

在业务种常常会出现数据库内的字段是char类型,然后需要判断类型返回给前端
例如数据库 0表示性别为男,1表示性别为女,然后Entity实体类内通过Integer进行映射,然后再返回给前端时通常需要判断后再返回,这样不但闲的很臃肿,也布不利于维护,因此我们可以使用Mybatis-Plus的提供的枚举功能去解决这种场景

1:创建枚举类型

public enum UserSexEnum {
    Male("男","m"),
    Female("女","f"),
    Other("其他","n");


    private UserSexEnum(String name,String value){
        this.name = name;
        this.value = value;
    }


    private String name;
    @EnumValue//MP提供的枚举表示插入数据库时插入该值
    private String value;


    @Override
    public String toString(){
        System.out.println("调用 toString");
        return this.name;
    }

    @JsonValue //get方法上加上此注解表示对枚举序列化时返回此字段
    public String getName() {
        return name;
    }

    public String getValue() {
        return value;
    }

}

2 实体类内使用该注解

@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
@TableName("user")
public class User  {

    @TableId(type = IdType.AUTO)
    private Long id;
    private String name;
    private Integer age;
    private Date birthday;
    private String cmd;
    private UserSexEnum sex =UserSexEnum.Other; //使用枚举
}

3 使用:
在添加时,前端传来的sex应该为 Male,Female或者Other然后mybatis-plus就活获取对应枚举的value值插入数据库。
当查询数据时,mybatis-plus也会将数据库的类型映射为枚举,然后利用Jackson返回男,女或其他

你可能感兴趣的:(springBoot,mybatis,spring,boot)