首页 > 其他分享 >通用枚举

通用枚举

时间:2022-12-10 16:04:12浏览次数:39  
标签:通用 SexEnum private sex 枚举 augus import com

在开发的时候往往表中的有些字段值是固定的,例如:性别只能选择男或女,此时我们可以使用MyBatis-Plus的通用枚举来实现

一、给之前的user表添加sex字段

通用枚举_User

 需要注意的是,在sex字段指定性别的时候,实际在数据库存储的时候,选择是0或者1用于代替男和女

二、创建通用枚举类型

在com.augus.enums包下创建枚举类:SexEnum 内容如下:

package com.augus.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;


public enum SexEnum {
MALE(0,"男"),
FEMALE(1,"女");


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

@EnumValue //标记数据库存的值是sex
private final Integer sex;

private final String sexName;

}

三、设置实体类中对应字段为枚举类

上述案例中实体类sex字段,最终传入的是枚举类中的值,所以需要指定sex字段的类型为 SexEnum 这个实体类

package com.augus.pojo;

import com.augus.enums.SexEnum;
import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

@AllArgsConstructor
@NoArgsConstructor
@Data
public class User implements Serializable {
//指定id对应的表中主键字段为uid,主键策略为自增
//@TableId(value = "uid", type = IdType.AUTO)
@TableId(value = "uid")
private Long id;
@TableField(value = "user_name")
private String name;
private Integer age;
//这里指定数据为原生的枚举类
private SexEnum sex;
private String email;
@TableLogic
private Integer is_delete;
}

四、创建测试类进行测试

创建测试类:MyBatisPlusEnum 内如如下:

package com.augus;

import com.augus.enums.SexEnum;
import com.augus.mapper.UserMapper;
import com.augus.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class MyBatisPlusEnum {
@Autowired
private UserMapper userMapper;

@Test
public void testSexEnum(){
User user = new User();
//设置信息
user.setName("莉莉娅");
user.setAge(31);
user.setEmail("[email protected]");
//设置性别信息为枚举项,会将@EnumValue注解所标识的属性值存储到数据库
user.setSex(SexEnum.FEMALE);
//插入数据
userMapper.insert(user);
}
}

执行后查看数据库:

通用枚举_User_02



标签:通用,SexEnum,private,sex,枚举,augus,import,com
From: https://blog.51cto.com/u_13661275/5927716

相关文章

  • OC之【enum枚举】
    void//定义一种枚举类型enum//定义一个枚举变量senumSeasons=winter;}void//定义枚举类型的同时定义一个枚举变量senumSeason{spring,summer,......
  • 枚举进阶使用
    ##......
  • 暴力枚举1-循环枚举
    暴力枚举一.循环枚举例题1​ 可以通过枚举点的坐标来计算长方形和正方形的个数普通思路:​ 枚举所有可能性(通过枚举):intmain(){ intn,m,squ=0,rec=0; cin>>n>>m;......
  • 用二分法做题【通用】
    二分法通用模板题目来源:Acwing789数的范围题目描述:给定一个按照升序排列的长度为n的整数数组,以及q个查询。对于每个查询,返回一个元素k的起始位置和终止位置(位......
  • GAIL-PT:一个具有生成对抗模仿学习的通用智能渗透测试框架
    主要内容:本文结合了GAN和IL-IRL构成了GAIL,通过专家知识的指导,使用GAIL对智能体进行训练,使其无限接近专家知识库的动作,使得PT的训练过程更加稳定和高效。GAIL-PT框架介绍......
  • Kotlin学习快速入门(11)—— 枚举类的使用
    原文地址:Kotlin学习快速入门(11)——枚举类的使用-Stars-One的杂货小窝由于有时候偶尔用到枚举类,所以简单记录一下,和Java的一起对比记录下面以一个简单的四季设计一个枚......
  • JS逆向之webpack 通用扣取思路
    本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删!标题......
  • C——枚举类型详解
    ​​枚举举例说明​​值得注意的是:枚举和结构体一样,如果还没定义枚举变量,是不能将里面的元素初始化的。错误代码:enumStates{STOP=0,TROT=1,BOUND=2,......
  • Java 枚举(enum) 详解7种常见的用法
    Java枚举(enum)详解7种常见的用法常量在JDK1.5之前,我们定义常量都是:publicstaticfianl....。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了......
  • 枚举类
    枚举类SeasonTest packagecom.atguigt.java;​/*  使用enum关键字来定义枚举类  说明:定义的枚举类默认继承于java.lang.Enum类*/publicclassSeasonTest1{......