2.1 方式1:@EnumValue标注入库映射字段 2.2 方式2:枚举属性实现IEnum接口 2.3 说明 3.mybatis-plus的实现分析 1. 引言 我们通常在开发中,有这样的需求:枚举类型存入数据库存的是编码code,然而返回给前端的时候是名称name,我们每次入库的时候都要getCode()以及返回给前端的时候要getName(),很繁琐,并且字段属于那...
Mybatis-plus是一款优秀的Mybatis扩展插件,它为Mybatis提供了许多实用的功能和注解,其中之一就是@EnumValue注解。@EnumValue注解主要用于将数据库中的枚举类型字段映射到Java枚举类型,方便我们在Java代码中处理枚举类型的数据。在Mybatis-plus中,使用@EnumValue注解可以将数据库中的枚举类型字段映射到Java枚举类型,同时也...
使用MyBatis Plus的这一特性,你可以更加优雅地处理枚举值与数据库字段值的映射,降低代码冗余度,让你专注于业务逻辑的实现,提升开发效率。无论是小型项目还是大型应用,MyBatis Plus的@EnumValue注解都会为你的持久层开发带来巨大的便利。
结论:枚举类用EnumValue注解修饰的数据类型,例如是Integer,那么在Mapper.xml中的jdbcType需要修改为对应类型! 最好的解决办法就是使用新版的mybatis-plus! 3.1.0版本后改变了mybatis原生的默认行为,而3.1.2版本以下的枚举处理类依然是EnumTypeHandler。推测在3.1.2以上的版本应该是不会出现这个问题的。 项目环境:spring...
在使用MyBatis Plus进行数据库操作时,有时候我们需要将数据库中的字符串类型字段自动转换成枚举类型字段。这样可以提高代码的可读性和维护性,同时也可以避免在业务逻辑中处理字符串类型带来的麻烦。 首先,我们需要定义一个枚举类型,用来表示数据库中的字符串字段对应的枚举值。比如我们定义一个名为GenderEnum的枚举类型,...
我们先在表中添加一个字段,表示性别,这里我们一般使用 int 来描述,因为 int 类型可以通过 0和 1 这两个值来表示两个不同的性别。 packagecom.rainbowsea.enums;importcom.baomidou.mybatisplus.annotation.EnumValue;publicenumGenderEnum{MAN(0,"男"),WOMAN(1,"女");@EnumValueprivateIntegergender;@EnumValue...
@EnumValue是MybatisPlus框架中的一个注解,用于指定枚举类型属性在数据库中的映射值。当我们使用Java中的枚举类型作为实体类的属性时,如果想要将枚举类型属性的值映射到数据库中以便于查询和存储,就需要使用@EnumValue注解来定义枚举类中具体的映射值。 具体使用 ...
1.使用@JsonCreator,可以将前台的属性值直接转换为枚举类型 2.@EnumValue 将枚举中的指定的值直接存储到数据库,不需要再手动转换 3.@JsonValue 后台返回前台数据时也不需要转换,可以直接返回指定的值 案例: User实体 @TableName("user") @Data public class User { ...
@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})public@interfaceEnumValue { } 实现通用的枚举TypeHandler 在mybatis-plus提供的TypeHandler上做了简单修改,会取枚举添加@EnumValue注解的属性值,如果未发现注解,使用枚举的name。 @Slf4jpublicclassMybatisEnumTypeHandler<EextendsEnum<E>>extendsBaseTypeHandler<...
2来表示女,而在代码中一般会定义成enum类型或静态常量来避免在业务代码中出现“0/1”这种魔法值,但是在数据库存储及前后端交互的时候,就需要进行转化;无论是在SQL、前端还是后台转化,都需要写相应的代码,无形中增加了开发工作量;mybatis-plus实现了对该问题的处理,能够让我们在查询数据库时,直接能够返回字段标识...