表中的有些字段值是固定的,例如性别(男或女),此时我们可以使用MyBatis-Plus的通用枚举
来实现
数据库表添加字段sex
创建通用枚举类型
package top.qaqaq.mybatisplus.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;
/**
* @author zyq
* @Description
* @create 2024-08-20 14:42
*/
@Getter
public enum SexEnum {
MALE(1, "男"),
FEMALE(2, "女");
@EnumValue //将注解所标识的属性的值存储到数据库中
private Integer sex;
private String sexName;
SexEnum(Integer sex, String sexName) {
this.sex = sex;
this.sexName = sexName;
}
}
配置扫描通用枚举
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 设置MyBatis-Plus的全局配置
global-config:
db-config:
# 设置实体类所对应的表的统一前缀
table-prefix: t_
# 设置统一的主键生成策略
id-type: auto
# 配置类型别名所对应的包
type-aliases-package: top.qaqaq.mybatisplus.pojo
# 扫描通用枚举的包
type-handlers-package: top.qaqaq.mybatisplus.enums
测试
@Test
public void test() {
User user = new User();
user.setName("admin");
user.setAge(33);
user.setSex(SexEnum.MALE);
int result = userMapper.insert(user);
System.out.println("result:" + result);
}
注意
实体类中要添加此字段
package top.qaqaq.mybatisplus.pojo;
import com.baomidou.mybatisplus.annotation.*;
import lombok.*;
import top.qaqaq.mybatisplus.enums.SexEnum;
/**
* @author zyq
* @Description
* @create 2024-07-29 15:45
*/
//@NoArgsConstructor
//@AllArgsConstructor
//@Getter
//@Setter
//@EqualsAndHashCode --@Data=@NoArgsConstructor+@Getter+@Setter+@EqualsAndHashCode+@ToString
@Data
//设置实体类所对应的表名
//@TableName("t_user")
public class User {
//将属性所对应的字段指定为主键
//@TableId注解的value属性用于指定主键的字段
//@TableId注解的type属性设置主键生成策略
//@TableId(value = "uid", type = IdType.AUTO)
@TableId("uid")
private Long id;
//指定属性所对应的字段名
@TableField("user_name")
private String name;
private Integer age;
private String email;
private SexEnum sex;
@TableLogic
private Integer isDeleted;
}