🍀 前言
博客地址:
👋 简介
本章节介绍下Mybatis-Plus框架的通用枚举功能。
📖 正文
1 通用枚举的介绍
通过Mybatis-Plus
框架提供的通用枚举功能,枚举可以重复利用,代码可读性提升,更不容易发生数值设置错误的情况发生。
比如在前面第四章节的时候,用户类中,我们性别使用的是Integer
表示的。
private Integer sex;
我们操作用户表添加数据,对性别的设置还在使用数字0,1,2来表示男女未知,这种情况下,代码不仅不优雅,而且容易发生数值错误。这时候就可以使用枚举来替代了。
2 通用枚举的使用
Tips:
Mybatis-Plus推荐3.5.2
版本,这个版本之后对通用枚举配置步骤进行了简化,如果低于这个版本,可以参考Mybatis-Plus官网,进行配置。
2.1 新增枚举类
首先在项目中新增一个enums
包,在该包下新增GenderEnum
枚举类。
package com.power.mpdemo.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;
/**
* @author power
* @time 2023/12/25 11:02
* @Description
*/
@Getter
public enum GenderEnum {
FAMALE(0, "女"),
MALE(1, "男"),
UNKNOWN(2, "未知");
@EnumValue
private final Integer code;
private final String description;
GenderEnum(Integer code, String description) {
this.code = code;
this.description = description;
}
}
Tips:
@EnumValue
注解用于告诉 MP 存数据时,使用 code 字段的值。
2.2 修改实体类
将实体类中下面的代码
@ApiModelProperty("性别(0:女 1:男 2:保密)")
private Integer sex;
修改成
@ApiModelProperty("性别(0:女 1:男 2:保密)")
private GenderEnum sex;
2.3 添加用户
@Test
public void insert() {
// 模拟创建一个用户
User user = User.builder()
.username("test01")
.password("123456")
.name("测试账号01")
.email("123456789@qq.com")
.phone("18811111111")
.avatar("头像地址url")
.sex(GenderEnum.MALE)
.description("测试")
.build();
// 调用添加用户的接口
int insert = userMapper.insert(user);
System.out.println("插入结果:" + insert);
}
// 插入结果:1
这个时候,我们添加用户的时候,性别就可以用GenderEnum.MALE
枚举的方式来进行设置了。
实际执行的SQL
INSERT INTO
tb_user ( username, password, name, email, phone, avatar, sex, description )
VALUES
( 'test01', '123456', '测试账号01', '123456789@qq.com', '18811111111', '头像地址url', 1, '测试' )
通过执行的SQL我们看到,在设置的时候使用了枚举的MALE
值,实际插入数据库的值则为1
。