Mybatis-Plus通用枚举
简介
MyBatis-Plus中提供了通用枚举,简单来说就是将数据库中的某一字段的代替的含义转换成真实的含义将数据读给用户,用户在存储时也会将真实值转换成代替的数字存入到数据库中。举个例子:用户性别在数据库中存储为1(表示男)、2(表示女)。在读取数据时就会自动将1,2值转换为男或女。
配置统一的枚举处理器:
mybatis-plus.configuration.default-enum-type-handler=com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler
首先我们数据库中定义一个int类型的性别字段,用数字来标识性别。
定义表示性别的枚举类:
@Getter
public enum SexEnum {
MALE(1,"男"),
FEMALE(2,"女");
@EnumValue//将注解所标识的属性的值存储到数据库中
private Integer sex;
@JsonValue//将注解所标识的属性的值存储到数据库中
private String sexName;
SexEnum(Integer sex, String sexName) {
}
}
实体类中的性别定义成这个样子:private SexEnum sex;
然后在配置一下扫描实体类的包:(目前版本不需要这个配置也可。)
# 扫描通用枚举的包
mybatis-plus.type-enums-package=com.demo.enums
测试代码,向数据库中插入数据
@SpringBootTest
public class MyBatisPlusEnumTest {
@Autowired
private UserMapper userMapper;
@Test
public void test(){
User user = new User();
user.setName("小李");
user.setSex(SexEnum.MALE);
user.setAge(23);
user.setEmail("123@qq.com");
int insert = userMapper.insert(user);
System.out.println("insert = " + insert);
System.out.println(user.getSex().getSexName());
}
}