Mybatisplus--------------通用枚举
首先在数据库某个字段表示状态码 这里指的性别 (登录值账号状态等)
总共俩步.设置状态码属性
.**
1.创建枚举和包含该字段的实体类
**
把和数据库有映射关系的字段用 @EnumValue表明映射
同时包含该字段的记录(实体类)也用@EnumValue标名该字段
//创建枚举
/**
* 枚举存储的是常量只需要getter就可以
*/
@Getter
public enum SexEnum {
FAMALE(2,"女"),
MALE(1,"男");
/**
* 枚举同构构造器自己调用自己一般用于字符表示性别
*/
//设置枚举值在对数据库操作的时候创建对应映射关系
@EnumValue
private int sex;
private String sexName;
public int getSex() {
return sex;
}
public String getSexName() {
return sexName;
}
SexEnum(int sex, String sexName) {
this.sex = sex;
this.sexName = sexName;
}
}
实体类
/**
*
设置实体类对应的表
* 效果等效于resultMap
*/
//@TableName("user")
@Data//除了有参构造外其他的重写方法都会添加 一般建议有参构造自己写
public class User {
@TableId(value = "id",type = IdType.AUTO)
private long id;
@TableField("name")
private String name;
@TableField("age")
private Integer age;
@TableField("email")
private String email;
/**
* 使用枚举表示性别
* 如果存入数据库 枚举有几个数据 所以肯定会报错
* 这个时候就需要注解解决问题
* 另外还需要到配置文件中设置(Mybatisplus)扫描枚举
*/
@EnumValue
private SexEnum sex;
// @TableLogic("is_delete")//表示逻辑字段 1 表示处于删除状态 0表示未删除
// private Integer isDelete;
}
2.在resource配置文件中配置Mybatisplus扫描
在配置文件application.yaml
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapper-locations: classpath:/mapper/*.xml
global-config:
db-config:
table-prefix: t_
#当需要操作多张有规律的表可以全局变量使用前缀配置
type-enums-package: com.example.jiaqiselflearn.MybatiesPlusdemo.entity
ok这里就可以把该字段表明为状态码了
然后测试
@Test
public void test08(){
User user = new User();
user.setName("admin");
user.setAge(19);
System.out.println(SexEnum.MALE);
user.setSex(SexEnum.MALE);
usermapper.insert(user);
usermapper.selectList(null);
}
控制台结果如下
在这里插入图片描述