0
点赞
收藏
分享

微信扫一扫

MybatisPlus通用枚举


表中的有些字段值是固定的,例如性别(男或女),此时我们可以使用MyBatis-Plus的通用枚举来实现。

添加字段

在数据库表添加字段​​sex​

alter table t_user modify sex int null comment '性别';

MybatisPlus通用枚举_MybatisPlus

创建通用枚举类型

package com.dawn.mybatisplus.pojo;

public enum SexEnum {
MALE(1, "男"),
FEMALE(2, "女");

@EnumValue //将注解所标识的属性的值存储到数据库中
private int sex;
private String sexName;

SexEnum(Integer sex, String sexName) {
this.sex = sex;
this.sexName = sexName;
}
}

@EnumValue 用来标记数据库存的值。

Mybatis 原生默认是以枚举的名称:Enum.name()作为默认值,即 User 类中定义的属性 private SexEnum sex; 默认向数据库存的时候会将 SexEnum.MALE.name() 的值存入数据库(String类型)。

使用 @EnumValue 注解标识 SexEnum 类中的 sex 属性后,保存数据库时就会取值 sex 保存进数据库。同样如果标识 sexName 保存时会取 sexName 的值(男/女)保存入库。

实体类修改

在 User 实体类中添加属性sex

@Data
@TableName("t_user")
public class User {
@TableId("uid")
private Long id;
@TableField("username")
private String name;
private Integer age;
private String email;

private SexEnum sex;

@TableLogic//逻辑删除
private int isDeleted;
}

配置扫描通用枚举

mybatis-plus:
configuration:
#配置日志
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
# 设置实体类所对应的表的统一前缀
table-prefix: t_
# 配置MyBatis-Plus的主键策略
id-type: auto
# 扫描通用枚举的包
type-enums-package: com.dawn.mybatisplus.enums

测试

@Test
public void testEnum(){
User user = new User();
user.setName("admin");
user.setAge(33);
user.setSex(SexEnum.MALE);
int result = userMapper.insert(user);
System.out.println("result:"+result);
}

控制台打印执行结果

MybatisPlus通用枚举_MybatisPlus_02


举报

相关推荐

0 条评论