MyBatisPlus从零到一:快速入门与核心功能详解(5)
3.4 通用枚举:
MybatisPlus 提供了一个处理枚举的类型转换器,可以帮我们把枚举类型与数据库类型自动转换。
3.4.1 创建枚举对象并添加 @EnumValue 注解
要让MybatisPlus处理枚举与数据库类型自动转换,我们必须告诉MybatisPlus,枚举中的哪个字段的值作为数据库值。
MybatisPlus提供了@EnumValue注解来标记枚举属性:
@Getter public enum UserStatus { NORMAL(1,"正常"), FREEZE(2,"冻结"), ; @EnumValue private final Integer code; private final String desc; UserStatus(Integer code, String desc) { this.code = code; this.desc = desc; } }
3.4.2 配置枚举处理器:
mybatis-plus: configuration: default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler
测试代码:
@Test void testService(){ List<User> list = userService.list(); list.forEach(System.out::println); }
因此我们可以知道,在配置完枚举处理器和添加 @EnumValue 注解后,MybatisPlus 会自动帮助我们完成 Java 枚举对象和数据库列字段的转化。
3.4.3 @JsonValue 注解:
如果我们想要枚举对象在前端展示对象其中的一个属性,可以通过 @JsonValue 添加在对应的属性上,MybatisPlus 会自动帮助我们进行转化。
3.5 JSON 类型处理器:
{"age": 20, "intro": "佛系青年", "gender": "male"}
这样一来,我们要读取 info 中的属性时就非常不方便。如果要方便获取,info 的类型最好是一个Map或者实体类。
而一旦我们把info改为对象类型,就需要在写入数据库时手动转为String,再读取数据库时,手动转换为对象,这会非常麻烦。
因此 MybatisPlus 提供了很多特殊类型字段的类型处理器,解决特殊字段类型与数据库类型转换的问题。例如处理 JSON 就可以使用JacksonTypeHandler处理器。
3.5.1 定义存储实体:
@Data public class UserInfo { private Integer age; private String intro; private String gender; }
3.5.2 使用类型处理器:
本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!
云掣基于多年在运维领域的丰富时间经验,编写了《云运维服务白皮书》,欢迎大家互相交流学习:
《云运维服务白皮书》下载地址:https://fs80.cn/v2kbbq
想了解更多大数据运维托管服务、数据库运维托管服务、应用系统运维托管服务的的客户,欢迎点击云掣官网沟通咨询:https://yunche.pro/?t=shequ