MybatisPlus——通用枚举

MyBatisPlus --(通用枚举+JSON处理器) 阅读详情

目录

9 通用枚举

9.1 通用枚举的作用

9.2 代码实现


9 通用枚举

9.1 通用枚举的作用

让 Java 枚举和数据库字段自动映射,不用手动转值,代码更清晰、安全。
比如存性别时,直接用SexEnum.MALE,框架自动把枚举里@EnumValue标记的1存到数据库;查的时候又自动把数据库的1转回SexEnum.MALE,不用自己写转换逻辑,还能避免传错值(比如传个3这种无效性别)。

9.2 代码实现

  1. 数据库添加字段
类型设置为int,默认值为1。
  1. 创建通用枚举类型
package com.qcby.mybatisplus1129.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;

@Getter //Lombok 注解,自动生成属性的getter方法(MyBatis-Plus 需要通过 getter 获取@EnumValue标记的属性值)
public enum SexEnum {

    // 枚举项:MALE代表“男”,FEMALE代表“女”
    MALE(1, "男"),
    FEMALE(2, "女");

    @EnumValue // 标记数据库中存储的对应值(核心注解)
    private Integer sex; // 数据库中实际存储的数值(1/2)
    private String sexName; // 枚举的描述(男/女)

    // 枚举的构造方法(枚举项通过此方法初始化属性)
    SexEnum(Integer sex, String sexName) {
        this.sex = sex;
        this.sexName = sexName;
    }
}
枚举项(MALE/FEMALE):
  • 定义具体的枚举值,每个枚举项对应一个 “数据库存储值 + 描述” 的组合。
  • 枚举项的名称(如MALE/FEMALE)可以自定义(比如写成MAN/WOMAN也没问题),但通常会遵循语义化命名(见名知意)。
  • 枚举项的本质是调用枚举的构造方法初始化实例:
MALE(1, "男") → 等价于 new SexEnum(1, "男")(只是枚举的构造是JVM自动完成的)
FEMALE(2, "女") → 等价于 new SexEnum(2, "女")
//所以枚举项名称只是标识,真正决定数据库存储值和描述的是构造方法传入的参数(1/2和"男"/"女")。
@EnumValue:
  • MyBatis-Plus 的核心注解,标记该属性是与数据库字段映射的值(如存 1 代表男,2 代表女)。
构造方法:
  • 枚举的构造方法是私有的(默认),用于初始化每个枚举项的sex(数据库值)和sexName(描述)。
  1. 配置扫描通用枚举
配置枚举扫描路径是为了让 MyBatis-Plus 自动处理枚举与数据库的转换
mybatis-plus:
  configuration:
    # 配置MyBatis日志
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    db-config:
      # 配置MyBatis-Plus操作表的默认前缀
      table-prefix: tx_
  # 配置扫描通用枚举
  type-enums-package: com.qcby.mybatisplus1129.enums
配置type-enums-package是因为:
MyBatis-Plus 需要扫描指定包下的枚举类,并自动为这些枚举注册类型处理器(TypeHandler),实现:
  • 存入数据库时:自动将枚举转换为@EnumValue标记的数值(如SexEnum.MALE→1)。
  • 查询数据库时:自动将数据库的数值转换为对应的枚举(如 1→SexEnum.MALE)。
  • 如果不配置这个路径,MyBatis-Plus 无法识别枚举类,会导致枚举与数据库值的转换失败。
  1. 实体类添加字段
package com.qcby.mybatisplus1129.entity;

import com.baomidou.mybatisplus.annotation.TableLogic;
import com.qcby.mybatisplus1129.enums.SexEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
    @TableLogic
    private Integer isDeleted;
    private SexEnum sex;  // 用枚举类作为字段类型


}
用枚举类作为字段类型是因为:
  • 语义化更清晰:直接用SexEnum.MALE/SexEnum.FEMALE表示性别,比用1/2或"男"/"女"更直观,代码可读性大幅提升。
  • 类型安全:只能传入枚举中定义的合法值(如SexEnum.MALE),避免传入3或"未知"这类非法值,编译期就能发现错误。
  • 自动转换:因为配置了枚举扫描,MyBatis-Plus 会自动处理枚举与数据库值的转换,无需手动写代码(如不用手动把SexEnum.MALE转成 1 存入数据库)。
  1. 测试
@Test
public void testSexEnum(){
    User user = new User();
    user.setName("Enum2");
    user.setAge(22);
    //设置性别信息为枚举项,会将@EnumValue注解所标识的属性值存储到数据库
    user.setSex(SexEnum.FEMALE);
    System.out.println(user);
    //INSERT INTO t_user ( username, age, sex ) VALUES ( ?, ?, ? ) //Parameters: Enum(String), 20(Integer), 1(Integer)
    userMapper.insert(user);
}

1 初识智能化测试 非常感谢您可以和我一起来聊一聊智能化测试的一些事。智能化测试是一个新鲜又老旧的问题,说新鲜是因为很多人当听到智能化测试都会联想到人工智能、机器学习、深度学习等高大上的技术,很多时候觉得离我们的实际工作还很远;说老旧,是因为智能化测试的一些技术的发展在行业里面已经很久了,例如符号执行、静态分析等技术已经有很长的历史了。近些年,随着测试技术的的飞速发展,智能化测试也有了越来越多的实践,优秀的开源项目慢慢的被行业推行并且落地。那么在这里我们就一起来聊聊智能化测试以及智能化测试好的思路、实践、方法以及技术落地过程。 阅读详情

相关推荐

RK3588-NANOPC-T6移植ubuntu+xenomai内核

更具网址下载相应的内核。导入到开发板并执行内核。

qq_42007446的博客 573

【Java开发】 Mybatis-Plus 06:通用枚举功能

枚举类是开发时绕不开的话题, Mybatis-Plus 也提供了简便的枚举功能,快学起来吧~

尹煜的博客 4161

避坑指南:用pygrib处理ERA5气象数据时遇到的5个典型问题

本文总结了使用pygrib库处理ERA5气象GRIB数据时常见的五个典型问题及解决方案,涵盖数据获取、内存管理、时间处理、空间插值和性能优化。重点针对气象数据插值这一核心挑战,提供了处理不规则网格、缺失值和跨日期变更线的实用代码示例与优化策略,帮助用户高效、稳定地完成气象数据分析工作。

weixin_28224217的博客 185

mybatis-plus通用枚举

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

爪哇人的博客 1963

Ubuntu安装opencv4.5(自己安装过程详细)

1.下载opencv 在opencv官网下载source版,下载链接 http://opencv.org/releases.html。别下载错版本 下载过程就不多说了。 2.安装过程 2.1解压 unzip opencv-4.5.0.zip cd opencv-4.5.0 2.2安装依赖的库 sudo apt-get install cmake sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-

weixin_45629790的博客 1万+

Qwen3-Omni-30B-A3B-Instruct微调指南:如何打造专属智能博物官(附数据集)

本文详细介绍了如何对Qwen3-Omni-30B-A3B-Instruct模型进行微调,以打造专业的智能博物官。指南涵盖了从理解模型架构优势、构建高质量文博数据集,到使用LLaMA-Factory进行实战微调、效果评估与部署优化的完整流程,并提供了关键的环境配置与性能优化建议,帮助开发者在垂直领域高效定制专属AI助手。

weixin_29096377的博客 1144

SpingBoot 中 Mybatis-Plus 使用 通用枚举功能

文章目录1. 配置文件添加配置2. 定义枚举2.1 方式一2.2 方式二2.3 方式三3. 定义实体类4.测试使用 1. 配置文件添加配置 # MP 配置 mybatis-plus: type-enums-package: com.baomidou.mybatisplus.samples.enums.enums configuration: # 3.0.8之前版本问题默认将枚举注册为EnumOrdinalTypeHandler,这是错误的方式,默认是 org.apache.ibatis.t

Gang-bb的博客 1832

使用ExcelJS向XLSX单元格居中插入图片

本文记录了使用ExcelJS库向XLSX单元格里居中写入图片的方法。本文内容包括:xlsx 文件格式;xlsx 图片定位的长度单位;使用nativeColOff和nativeRowOff进行定位,不要使用官网给的定位方式;添加图片到数据表的总体流程和样例代码;注意事项等。

weixin_43678000的博客 3456

Mybatis-plus通用枚举

Mybatis-plus通用枚举

captain_zhangYC的博客 1861

第12篇:TMC2240 CoolStep节能功能|软件配置+功耗测试(保姆级)

本文介绍了TMC2240驱动芯片的CoolStep节能功能,通过动态调节电机电流实现功耗优化。CoolStep利用StallGuard技术实时检测负载,自动调整运行电流,空载时可降低50%以上功耗。文章详细讲解了节能原理、寄存器配置方法和参数校准步骤,提供可直接复用的STM32代码。该功能特别适合电池供电设备,能显著延长续航时间,同时保持电机性能稳定。配置时需注意SG阈值、电流步长等关键参数,并可与静音模式叠加使用。

BackCatK Chen的博客 918

如何绘制电气绝缘图(GB9706.1-2007和GB9706.1-2020差异)

是用来描述要考虑设备的绝缘状况和它们的值 ,从而便于和相关部门交流和沟通,如权威机构和检测实验室等。本文为绝缘图的实例, 包括所有相关的绝缘路径以及介电强度,爬电距离和电气间隙的值。

学海无涯的专栏 1万+

MyBatis-Plus之通用枚举

MyBatis-Plus中提供了通用枚举,简单来说就是将数据库中的某一字段的代替的含义转换成真实的含义将数据读给用户,用户在存储时也会将真实值转换成代替的数字存入到数据库中。举个例子:用户性别在数据库中存储为1(表示男)、2(表示女)。在读取数据时就会自动将12值转换为男或女。 这样做是可以有效地节省数据库的存储空间。下面我们来看看枚举的使用方式~

心态的博客 1833

【智能车Code review】——小S与中S道路判断

基本思想: 找到中线的左拐点和右拐点,并且计算出两点之间的空间距离。通过限制空间距离,分为中S和小S。 注意这种情况:当20行以下的中线斜率比较陡,此时可以通过人为限制设定,将第0行的中线设置为拐点。 if (flag_centre_right_point == 0 && flag_centre_left_point == 1 && parameterB >= 0.5 && centre_left_point[0] >= 33) { .

hanhan的博客 6104

MybatisPlus-通用枚举

MybatisPlus通用枚举类总结

qq_59093178的博客 653

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

MybatisPlus静态工具 & 通用枚举

像这种字段我们一般会定义一个枚举,做业务判断的时候就可以直接基于枚举做比较。中方法签名基本一致,就在方法例多给出一个参数,操作的实体类类型。有的时候Service之间也会相互调用,为了。注解来标记枚举属性,通过@JsonValue。处理枚举与数据库类型自动转换,我们必须告诉。,枚举中的哪个字段的值作为数据库值。注解标记JSON序列化时展示的字段。提供了@EnumValue。,其中的一些静态方法与。

sdg_advance的博客 675

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

MybatisPlus中的通用枚举使用

表中的有些字段值是固定的,例如性别(男或女。注解所标识的属性值存储到数据库。设置性别信息为枚举项,会将。最后性别栏成功插入1。

qq_69304031的博客 478

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

MybatisPlus【SpringBoot】 7 通用枚举

MybatisPlus【SpringBoot】 7 通用枚举

代码改变世界 380

MybatisPlus 通用枚举的使用

MybatisPlus 通用枚举的使用 1、声明通用枚举属性 方式一: 使用 @EnumValue 注解枚举属性 /** * @author liuhongjun */ @Getter @AllArgsConstructor public enum StatusEnum { SHOW(1, "显示"), HIDE(2, "隐藏"); @EnumValue // 标记数据库存的值是code @JsonValue // 标记响应json值 private In

不问世事的码农 670

MyBatisPlus——通用枚举

文章目录1、数据库表添加字段sex2、创建通用枚举类型3、配置扫描通用枚举4、测试 表中的有些字段值是固定的,例如性别(男或女),此时我们可以使用MyBatis-Plus的通用枚举来实现。 1、数据库表添加字段sex [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IKTeZpaq-1648381171986)(素材/增加字段sex.png)] 2、创建通用枚举类型 @Getter public enum SexEnum { MALE(1, "男"), FEM

前尘忆梦的博客 1521

MyBatisPlus的通用枚举类

若需映射非。

wqs12_的博客 340

MyBatisPlus通用枚举

MyBatisPlus通用枚举

晶谛-giserDev 763

MybatisPlus(SpringBoot版)学习第七讲:通用枚举

一、通用枚举表中的有些字段值是固定的,例如性别(男或女),此时我们可以使用MyBatis-Plus的通用枚举 来实现。

m0_75163045的博客 325

MybatisPlus 通用枚举

数据库表中的有些字段值是固定的,例如性别(男或女),此时我们可以使用MyBatisPlus的通用枚举来实现。mybatisplus使用通用枚举二、数据库表添加字段sex。

weixin_73735141的博客 473

MybatisPlus通用枚举

MybatisPlus通用枚举

Dawn的博客 869
上一篇: MybatisPlus条件构造器(下)
下一篇: MybatisPlus——代码生成器
L.S.L_
博客等级 码龄3年 129粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值