mybatis-plus如何使用枚举类来实现性别和标签的数字带描述

文章目录

目录

文章目录

前言

一、环境准备

二、使用步骤

一 实体类

二 枚举类 

三 持久层

四 控制层 

总结



前言

枚举是一种表示一组有限可能取值的数据类型。它具有以下几个好处:

  1. 易于理解和维护:枚举提供了一种清晰明了的方式来表示一组具体的取值,使代码更易于理解和维护。通过使用枚举,开发人员可以将相关的取值归类并命名,使代码更加可读。

  2. 类型安全:枚举在编译时进行类型检查,确保程序在使用枚举值时不会出现类型错误。这提供了更高的类型安全性,减少因为传递、比较或赋值错误而引入的问题。

  3. 可读性强:枚举常量通常使用具有描述性的名称,使代码更易于理解和阅读。相对于用数字或字符串直接表示取值,枚举常量提供了更好的代码可读性和可维护性。

  4. 防止无效取值:通过使用枚举,可以限制变量只能取枚举常量中定义的值,从而避免了使用无效或非预期取值的情况。这有助于减少错误和异常情况的发生。

  5. 更好的代码表达意图:枚举常量表示一组相关的取值,通过使用枚举,可以更直观地表达代码的意图和目的。这有助于提高代码的可读性和可维护性。


一、环境准备

spring boot +mybatis-plus+mysql

引入依赖

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.0</version>
</dependency>

配置枚举类识别

#配置mybatis-plus日志和枚举扫描配置
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl#枚举识别前置器default-enum-type-handler: org.apache.ibatis.type.EnumOrdinalTypeHandlermapper-locations: classpath:/mapper/*.xml#枚举类扫描路径type-enums-package: com.rcg.enums

 

二、使用步骤

一 实体类

@TableName(value ="test_enum")
@Data
public class MyEnum {private Integer id;private String name;//枚举类型的性别private GenderEnum sex;}

二 枚举类 

需要主要的是实现的泛型类型要和数据库存储的类型一致,并且枚举属性里面必须要有一个能和数据库存储的数据以及类型一致的。也就是泛型类型 枚举属性的其中一个类型 需要和数据库里面要映射的字段保持。

public enum GenderEnum implements IEnum<Integer> {MALE(0, "男"),FEMALE(1, "女");private final int value;private final String desc;GenderEnum(int value, String desc) {this.value = value;this.desc = desc;}@Overridepublic Integer getValue() {return value;}public String getDesc() {return desc;}
}

三 持久层

@Mapper
@Repository
public interface TestEnumMapper extends BaseMapper<MyEnum> {
}

四 控制层 

@RestController
@RequestMapping("/test")
public class TestController {@Resourceprivate TestEnumMapper enumMapper;@GetMapping("/test")public List<MyEnum> test(){List<MyEnum> myEnums = enumMapper.selectList(null);return myEnums;}}

测试出来的数据结果。符合需要的数据格式。

 

 

 

 

 


总结

总之,枚举提供了一种更具表达力和可读性的方式来表示一组有限可能取值的数据类型。它们使代码更易于理解、维护和调试,并提供了更好的类型安全性和错误预防机制。因此,在开发过程中,合理使用枚举可以带来许多好处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/53423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot定时器调度

导入依赖 <dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId></dependency> 对方法添加注解 Scheduled(cron "*/2 * * * * ?") public void scheduledMethod() { // 设…

【Linux操作系统】线程的基本知识和创建--循环创建多个子线程

本篇文章主要介绍了线程的概念和作用&#xff0c;线程三级映射的实现&#xff0c;创建线程的方法&#xff08;讲解pthread_self和pthread_create函数&#xff09;&#xff0c;循环创建多个子线程为例子&#xff0c;同时分析线程之间的全局变量的共享问题&#xff0c;希望可以帮…

Redis笔记——(狂神说)待续

Nosql概述 为什么要用NoSql&#xff1f; 1、单机mysql的年代&#xff1a;90年代&#xff0c;网站访问量小&#xff0c;很多使用静态网页html写的&#xff0c;服务器没压力。 当时瓶颈是&#xff1a;1)数据量太大一个机器放不下。2)数据的索引(BTree)&#xff0c;一个机器内存也…

Git最简入门

文章目录 几个基本概念版本控制Git的由来分布式 vs 集中式GitSVN Git、GitHub、GitLab、GitWeb、Gitee的区别 动手进行版本控制初始化Git使用情景一&#xff1a;开发新项目使用情景二&#xff1a;在已有项目上开发设置代理 参考 几个基本概念 版本控制 在工作学习中&#xff…

LiveData相关基本使用及去除黏性数据的方法

目录 一、LiveData的基本使用1. 使用方式一2. 使用方式二3. 使用方式三 二、LiveData 去除黏性数据的方法1. 去除黏性的Java版本2. 去除黏性的Kotlin版本 一、LiveData的基本使用 1. 使用方式一 MyLiveData.kt package com.example.mylivedata.simple1import androidx.lifec…

「Python|音视频处理|环境准备」如何在Windows系统下安装并配置音视频处理工具FFmpeg

本文主要介绍如何在Windows系统下安装并配置音视频处理工具FFmpeg&#xff0c;方便使用python进行音视频相关的下载或编辑处理。 文章目录 一、下载软件二、解压并配置三、验证安装 一、下载软件 首先要去 ffmpeg官网 下载软件包 由于上面直接下载的按钮是.tar.xz格式的。为了…

Pygame编程(8)image模块

Pygame编程&#xff08;8&#xff09;image模块 函数示例 函数 pygame.image.load 从文件&#xff08;或类似文件的对象&#xff09;加载新图像load(filename) -> Surfaceload(fileobj, namehint“”) -> Surface pygame.image.save 将图像保存到文件&#xff08;或类似…

基于 Alpine 环境源码构建 alibaba-tengine(阿里巴巴)的 Docker 镜像

About Alpine&#xff08;简介&#xff09; Alpine Linux 是一款极其轻量级的 Linux 发行版&#xff0c;基于 busybox&#xff0c;多被当做 Docker 镜像的底包&#xff08;基础镜像&#xff09;&#xff0c;在使用容器时或多或少都会接触到此系统&#xff0c;本篇文章我们以该镜…

Pydev·离线git包

Pydev离线git包 1.下载离线git包&#xff1a;eclipse.egit.repository-4.4.0.201606070830-r.zip 2.将解压后目录&#xff1a;eclipse.egit.repository-4.4.0.201606070830-r\plugins下的jar文件放到 ide\eclipse\plugins目录下 3.重启pydevIDE 百度搜索站长工具&#xff1a;h…

head 请求了解过吗?如何用 get 模拟 head 请求?不需要服务器返回数据,怎么实现?

HEAD请求是HTTP/1.1协议中定义的一个请求方法&#xff0c;与GET请求相似&#xff0c;但只请求目标URL的头部&#xff0c;不请求实际的数据或者说正文内容。其主要用途是&#xff1a; 检查资源是否存在。获取资源的元数据&#xff08;如响应头中的Content-Length或Last-Modifie…

Spring集成【MyBatis】和【PageHelper分页插件】整合---详细介绍

一&#xff0c;spring集成Mybatis的概念 Spring 整合 MyBatis 是将 MyBatis 数据访问框架与 Spring 框架进行集成&#xff0c;以实现更便捷的开发和管理。在集成过程中&#xff0c;Spring 提供了许多特性和功能&#xff0c;如依赖注入、声明式事务管理、AOP 等 它所带来给我们的…

校对的力量:当专业遇上细节,文字焕发新生

在这个信息爆炸的时代&#xff0c;文字成为了我们传达思想、展现形象的重要工具。从新闻稿、政府材料到商业文档&#xff0c;其背后的准确性和专业性往往决定了信息传递的效果。而保证这一切的&#xff0c;就是细致入微的校对工作。 1.错别字与校对&#xff1a;细节之美 错别字…

go web框架 gin-gonic源码解读03————middleware

go web框架 gin-gonic源码解读03————middleware&#xff08;context&#xff09; 今天打完游戏有空整理整理之前看的gin的中间件设计&#xff0c;go的中间件设计相较于前两站还是蛮简单&#xff0c;蛮容易看懂的&#xff0c;所以顺便把context也一起写一下。 中间件是现在w…

开源全球地理空间数据可视化框架——Cesium学习(2023.8.21)

Cesium学习 2023.8.21 1、Cesium简介1.1 Github上的Cesium 2、Cesium下载安装使用2.1 方式一&#xff1a;页面在线引用2.2 方式二&#xff1a;页面离线使用2.3 方式三&#xff1a;完整项目使用 3、CesiumJS学习教程&#xff08;快速上手 API文档&#xff09;3、Cesium官方示例…

Python 读写 Excel 文件库推荐和使用教程

文章目录 前言Python 读写 Excel 库简介openpyxl 处理 Excel 文件教程pandas 处理 Excel 文件教程总结 前言 Python 读写 Excel 文件的库总体看还是很多的&#xff0c; 各有其优缺点&#xff0c; 以下用一图总结各库的优缺点&#xff0c; 同时对整体友好的库重点介绍其使用教程…

java中多个list怎么用List表示?

如果你有多个List对象&#xff0c;想要将它们合并成一个List对象&#xff0c;可以使用addAll()方法来实现。addAll()方法将会把一个List中的元素逐个添加到另一个List中。 以下是一个示例&#xff0c;展示了如何将多个List对象合并为一个List对象&#xff1a; import java.ut…

vue离线缓存资源文件

本文章主要是解决大文件,实时请求资源浪费网络资源的问题 从而有效的将解决用户体验的问题 话不多说上才艺 ⬇️⬇️⬇️⬇️⬇️⬇️⬇️ 找到项目中的 index.html 文件,并在 html 标签中加入 manifest"manifest.appcache" 安装 appcache-manifest 包 npm ins…

【NPM】包的指令

npm 安装的包可以根据其用途和作用进行分类&#xff0c;一般可以分为以下几种类型&#xff1a; 普通依赖&#xff08;Regular Dependencies&#xff09;&#xff1a; 这些是你项目中的实际依赖项&#xff0c;用于构建、运行或扩展你的应用程序。这些依赖会被包含在你的应用程序…

c++ qt--信号与槽(二) (第四部分)

c qt–信号与槽(二) &#xff08;第四部分&#xff09; 信号与槽的关系 1.一对一 2.一对多 3.多对一 4.多对多 还可以进行传递 信号->信号->槽 一个信号控制多个槽的例子&#xff08;通过水平滑块控制两个组件&#xff09; 1.应用的组件 注意这里最下面的组件进行…

【Qt学习】06:事件与事件过滤器

OVERVIEW 事件与事件过滤器一、事件1.鼠标事件创建子类MyLabel重写鼠标事件提升Label控件为MyLabel 2.定时器事件timerEventQTimer 3.事件分发器&#xff08;event函数&#xff09;event函数重写event函数深入 二、事件过滤器1.事件过滤器2.事件处理的五个层次 事件与事件过滤器…