在开发当中我们可能会遇到有一些特殊的值,是固定的格式,例如,男和女,这2个数据,那么这种情况我们可以考虑使用枚举来进行数据的编写.。不仅仅是男女,还有一些,例如,订单支付状态等等。
枚举(enmu)代码
package com.example.mybatisdemo3.enums;
/**
* @BelongsProject: mybatisplusdemo
* @BelongsPackage: com.example.mybatisdemo3.enums
* @Author: 云边小屋(My.Tears)
* @CreateTime: 2023-06-19 22:00
*/
public enum GenderEnums {
// 0 代表 男 1 代表 女
MAN(0, "男"),
WOMAN(1, "女");
/**
* 性别编号
*/
@EnumValue // 表示指定枚举类型字段值与数据库中的字段值之间的关系
private Integer gender;
/**
* 性别
*/
private String genderName;
GenderEnums(Integer gender, String genderName) {
this.gender = gender;
this.genderName = genderName;
}
}
实体类代码
package com.example.mybatisdemo3.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.example.mybatisdemo3.enums.GenderEnums;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @TableName student
*/
@EqualsAndHashCode(callSuper = true)
@TableName(value ="student")
@Data
public class Student extends Model<Student> implements Serializable {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
// 枚举类型
private GenderEnums gender;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
测试枚举类型是否能添加数据成功
package com.example.mybatisdemo3;
import com.example.mybatisdemo3.domain.Student;
import com.example.mybatisdemo3.enums.GenderEnums;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
/**
* @BelongsProject: mybatisplusdemo
* @BelongsPackage: com.example.mybatisdemo3
* @Author: 云边小屋(My.Tears)
* @CreateTime: 2023-06-19 21:53
*/
@SpringBootTest
public class EnumsTest {
@Test
void insert(){
Student student = new Student();
student.setName("枚举类型测试");
student.setAge(20);
student.setGender(GenderEnums.MAN);
student.insert();
}
测试结果
注意,在使用枚举类型作为参数的时候,必须在枚举类中设置一个@EnumValue的注解,不然枚举类型作为数据添加到数据库是会报错的。添加@EnumValue注解之后,就可以将数据库中的字段值正确的转换为实体类中的字段值,若没有指定该注解那么会报错
报错信息如下:
无法识别该参数
合理巧妙地使用枚举类型,可以提高代码的可读性和可维护性。