java的通用枚举

本文介绍了如何在MyBatisPlus3.5.2及以上版本中使用通用枚举,通过Lombok注解自动处理性别等固定字段的增删改查,降低了繁琐的配置,使MyBatis使用更优雅。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果表中的有些字段值是固定的,这个时候进行使用通用枚举,也就是设置性别的时候,性别的值和内容是固定的,在使用的时候【增删改查】,直接调用枚举类当中的内容就可以实现,相当于是一个常量一样

这个概念是在mybatisplus当中所提及到的

解决了繁琐的配置过程,让mybatis优雅的使用枚举属性

在mybatis-plus版本3.5.2之后就不需要进行配置了,所以仅仅需要做到的是声明一下通用枚举类属性就行

首先先进行创建一下对应的文件

其中主要的内容就是两个注解和一个接口,以及进行使用

在不写上对应注解和实现接口的情况下:

package org.example;
​
import lombok.Getter;
​
@Getter
public enum Person {
    MAN(0, "男"),
    MALE(1, "女");
    private int i;
    private String display;
​
    Person(int i, String display) {
        this.i = i;
        this.display = display;
    }
​
}

其中MAN和MALE是常用固定的性别值,其中构造器和get方法是必要的

使用环节:

package org.example;
​
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
​
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Student {
    private String name;
    private Integer age;
    //枚举类的类型就是对应的类型
    private Person sex;
}
 

注解的使用方法:

注解总共是有两个,一个是@EnumValue注解,这个注解是用来标记数据库存储的值,一个是@JsonValue注解,这个注解是放在需要前端展示的属性上添加【其中@JsonValue注解是需要在有jsckson依赖的情况下进行使用】

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.8.6</version>
        </dependency>
​
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.6</version>
        </dependency>
​
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.8.6</version>
        </dependency>
仅仅引入这个依赖之后也是可以实现的
    
    <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.6</version>
        </dependency>
 
package org.example;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;


@Getter
public enum SexEnum {
    MAN(1, "男"),
    MALE(2, "女");
    @EnumValue
    private Integer value;
    @JsonValue
    private String display;

    SexEnum(Integer value, String display) {
        this.value = value;
        this.display = display;
    }

}

一个接口:

这个接口是IEum<>

package org.example;
import com.baomidou.mybatisplus.annotation.IEnum;
import lombok.Getter;
​
​
@Getter
public enum SexEnum implements IEnum<Integer> {
    MAN(1, "男"),
    MALE(2, "女");
​
    private Integer value;
​
    private String display;
​
    SexEnum(Integer value, String display) {
        this.value = value;
        this.display = display;
    }
​
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值