Mybatis-plus使用枚举类型定义属性映射数据库
程序员文章站
2022-06-28 16:43:23
在业务种常常会出现数据库内的字段是char类型,然后需要判断类型返回给前端例如数据库 0表示性别为男,1表示性别为女,然后Entity实体类内通过Integer进行映射,然后再返回给前端时通常需要判断后再返回,这样不但闲的很臃肿,也布不利于维护,因此我们可以使用Mybatis-Plus的提供的枚举功能去解决这种场景1:创建枚举类型public enum UserSexEnum { Male("男","m"), Female("女","f"), Other("其他","n");...
在业务种常常会出现数据库内的字段是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返回男,女或其他
本文地址:https://blog.csdn.net/dndndnnffj/article/details/109842130