MybatisPlus的通用枚举类型

在开发当中我们可能会遇到有一些特殊的值,是固定的格式,例如,男和女,这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注解之后,就可以将数据库中的字段值正确的转换为实体类中的字段值,若没有指定该注解那么会报错

报错信息如下:

无法识别该参数 

合理巧妙地使用枚举类型,可以提高代码的可读性和可维护性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值