springboot项目mybatis plus使用枚举字典

mybatis plus 枚举类型

添加mybatis-plus依赖
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>${mybatis.plus.version}</version>
            </dependency>
配置枚举扫描
mybatis-plus:
  # mapper.xml文件 
  mapper-locations: classpath:mapper/*.xml
  # 数据库对应实体类
  type-aliases-package: com.demo.entity.po
  # 枚举的包路径
  type-enums-package: com.demo.contants.enum
数据库表结构
create table base_user
(
    user_id        bigint unsigned auto_increment comment '主键id'
        primary key,
    username       varchar(30)          null comment '用户名',
    phone          varchar(20)          null comment '手机号',
    password       varchar(128)         null comment '密码',
    salt           varchar(32)          not null comment '加盐',
    type           tinyint(1) default 1 null comment '用户类型:1用户/2员工/3供应商',
    is_deleted     tinyint(1) default 0 not null comment '是否删除(0:否;1是)',
    created_at     datetime             null comment '创建时间',
    updated_at     datetime             null comment '更新时间',
    deleted_at     datetime             null comment '删除时间'
)
    comment '基础数据-用户表';
对应实体类
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * @author liouwb
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("base_user")
@ApiModel(value = "User对象", description = "基础数据-用户表")
public class User extends Model<User> {
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(value = "user_id", type = IdType.AUTO)
    private Long userId;

    /**
     * 用户登录用户名
     */
    private String username;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 用户密码
     */
    private String password;

    /**
     * 加盐
     */
    private String salt;

    /**
     * 用户类型:枚举类
     */
    private UserTypeEnum type;

    /**
     * 创建时间
     */
    @TableField(value = "created_at")
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    @TableField(value = "updated_at", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedAt;
    
    /**
     * 删除时间
     */
    private LocalDateTime deletedAt;

    /**
     * 删除状态0:未删除;1:已删除
     */
    @TableField("is_deleted")
    @TableLogic
    private Boolean deleted;
    
    @Override
    protected Serializable pkVal() {
        return this.userId;
    }
}
枚举类
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.Arrays;

/**
 * @author liouwb
 */
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum UserTypeEnum {

    USER(1, "用户"),
    STAFF(2, "员工"),
    SUPPLIER(3, "供应商");
    
    /**
     * 对应数据库的数据
     */
    @EnumValue
    private int code;

    private String name;

    UserTypeEnum(int code, String name) {
        this.code = code;
        this.name = name;
    }

    /**
     * 反序列化
     * @param code 数据库对应的值
     * @return 枚举对象
     */
    @JsonCreator
    public static UserTypeEnum getByCode(@JsonProperty("code") int code) {
        return Arrays.stream(UserTypeEnum.values()).filter(item -> item.code == code).findFirst().get();
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值