0
点赞
收藏
分享

微信扫一扫

通用枚举

在开发的时候往往表中的有些字段值是固定的,例如:性别只能选择男或女,此时我们可以使用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);
}
}

执行后查看数据库:

通用枚举_字段_02



举报

相关推荐

0 条评论