通用枚举
在开发的时候往往表中的有些字段值是固定的,例如:性别只能选择男或女,此时我们可以使用MyBatis-Plus的通用枚举来实现
一、给之前的user表添加sex字段

需要注意的是,在sex字段指定性别的时候,实际在数据库存储的时候,选择是0或者1用于代替男和女
二、创建通用枚举类型
在com.augus.enums包下创建枚举类:SexEnum 内容如下:
package com.augus.enums; import com.baomidou.mybatisplus.annotation.EnumValue; public enum SexEnum { MALE(0,"男"), FEMALE(1,"女"); SexEnum(Integer sex, String sexName) { this.sex = sex; this.sexName = sexName; } @EnumValue //标记数据库存的值是sex private final Integer sex; private final String sexName; }
三、设置实体类中对应字段为枚举类
上述案例中实体类sex字段,最终传入的是枚举类中的值,所以需要指定sex字段的类型为 SexEnum 这个实体类
package com.augus.pojo; import com.augus.enums.SexEnum; import com.baomidou.mybatisplus.annotation.*; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; @AllArgsConstructor @NoArgsConstructor @Data public class User implements Serializable { //指定id对应的表中主键字段为uid,主键策略为自增 //@TableId(value = "uid", type = IdType.AUTO) @TableId(value = "uid") private Long id; @TableField(value = "user_name") private String name; private Integer age; //这里指定数据为原生的枚举类 private SexEnum sex; private String email; @TableLogic private Integer is_delete; }
四、创建测试类进行测试
创建测试类:MyBatisPlusEnum 内如如下:
package com.augus; import com.augus.enums.SexEnum; import com.augus.mapper.UserMapper; import com.augus.pojo.User; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest public class MyBatisPlusEnum { @Autowired private UserMapper userMapper; @Test public void testSexEnum(){ User user = new User(); //设置信息 user.setName("莉莉娅"); user.setAge(31); user.setEmail("liliya@126.com"); //设置性别信息为枚举项,会将@EnumValue注解所标识的属性值存储到数据库 user.setSex(SexEnum.FEMALE); //插入数据 userMapper.insert(user); } }
执行后查看数据库:


浙公网安备 33010602011771号