mybatis-plus通用枚举

原文链接:mybatis-plus通用枚举 – 编程屋

1 前言

        一般在我们的数据库中,表示性别等类型的字段通常用int类型来表示,那么当我们声明了一个枚举类时,如何将枚举类的某一属性赋值到数据库呢?

 2 测试

定义一个枚举类:

@Getter
public enum SexEnum {
    MALE(1, "男"),
    FEMALE(2, "女");

   
    private Integer sex;
    private String sexName;

    SexEnum(Integer sex, String sexName) {
        this.sex = sex;
        this.sexName = sexName;
    }
}

实体类字段:

@Data
//@TableName("t_user")
public class User {

    //将属性所对应的字段指定为主键
    //@TableId注解的value属性用于指定主键的字段
    //@TableId注解的type属性设置主键生成策略
//    @TableId(value = "uid", type = IdType.AUTO)
    @TableId(value = "uid")
    private Long id;

    //指定属性所对应的字段名
    @TableField("user_name")
    private String name;

    private Integer age;

    private String email;

    private SexEnum sex;

    @TableLogic
    private Integer isDeleted;

}

测试类:

    @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);
    }

控制台输出:

原因是 

数据库定义字段是int类型,但是插入的却不是int类型所以报错。

那么如何解决这个问题呢?只需两步

1)首先可以改变枚举类(将想要插入的值加上@EnumValue注解):

以上只是部分内容,为了维护方便,本文已迁移到新地址:mybatis-plus通用枚举 – 编程屋

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值