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

news2024/9/27 9:28:17

文章目录

目录

文章目录

前言

一、环境准备

二、使用步骤

一 实体类

二 枚举类 

三 持久层

四 控制层 

总结



前言

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

  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.EnumOrdinalTypeHandler
  mapper-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;
    }

    @Override
    public Integer getValue() {
        return value;
    }

    public String getDesc() {
        return desc;
    }
}

三 持久层

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

四 控制层 

@RestController
@RequestMapping("/test")
public class TestController {


    @Resource
    private TestEnumMapper enumMapper;


    @GetMapping("/test")
    public List<MyEnum> test(){

        List<MyEnum> myEnums = enumMapper.selectList(null);
        return myEnums;
    }

}

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

 

 

 

 

 


总结

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

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

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

相关文章

存储技术------存储接口和协议总结

存储技术------存储接口和协议总结 存储技术------存储接口和协议总结一、网络存储接口ATA: 在并行中没落SATA: 在低端徘徊SCSI: 中端存储的主流之选iSCSI &#xff1a;TCP\IP的SCSI SAS: 接口协议的明日帝国FC: 高端应用的基石MSATAM.2: 为SSD存储而生M.2接口&#xff08;NVMe…

Elasticsearch 常见的简单查询

查看es中有哪些索引 请求方式&#xff1a;GET 请求地址&#xff1a;http://localhost:9200 /_cat/indices?v 参数&#xff1a;无 结果&#xff1a; 查看索引全部数据 请求方式&#xff1a;GET 请求地址&#xff1a;http://localhost:9200/index-2023-08/_search 参数&a…

Android开发基础知识总结(五)Activity专题

Activity是安卓开发中的四大组件之一&#xff0c;也是最重要的一者。APP中每一个对应的页面&#xff0c;底层都有唯一地Activity与之对应~ Activity之间通过Intent进行通信,应用中每一个Activity都必须要在AndroidManifest.xml配置文件中声明&#xff0c;否则系统将不识别也不…

龙蜥社区标准化SIG举行线下社区标准研讨会,助力开源社区规范发展

8月11日下午&#xff0c;龙蜥社区标准化SIG组织召开线下MeetUp会议&#xff0c;来自阿里云、浪潮信息、Intel、CSDN、联通软件研究院、红旗软件、中兴通讯|中兴新支点、中科曙光、中科方德、统信软件、龙芯、上海兆芯、麒麟软件、万里红、普华基础软件、飞腾信息等公司的30多位…

AI狂飙,云端IDE如何书写未来?TVP吐槽大会邀您来论道

随着云原生的发展&#xff0c;数字化转型的深入&#xff0c;云端开发场景越发丰富&#xff0c;今年&#xff0c;云端 IDE 逐渐成为聚光灯下的一大焦点&#xff0c;CNCF 在 2023 年云原生预测中提出 “云原生 IDE 成为常态”。云端 IDE 创造了一个端到端的开发环境&#xff0c;并…

4.4TCP半连接队列和全连接队列

目录 什么是 TCP 半连接队列和全连接队列&#xff1f; TCP 全连接队列溢出 如何知道应用程序的 TCP 全连接队列大小&#xff1f; 如何模拟 TCP 全连接队列溢出的场景&#xff1f; 全连接队列溢出会发生什么 ? 如何增大全连接队列呢 ? TCP 半连接队列溢出 如何查看 TC…

思维调试:理解 DDE 的初始化过程

最近有人问我下面这个问题&#xff0c;我们依然可以使用之前我提到的 “思维调试” 来研究研究。 我们碰到了一个技术问题。当在资源管理器中双击打开文档时&#xff0c;资源管理器不会启动我们的应用程序。 更加奇怪的是&#xff0c;如果我们将一个调试器挂接到资源管理器进程…

git通过fork-merge request实现多人协同

一、问题 对于一个项目&#xff0c;如果需要多人协同开发&#xff0c;大家都在原始仓库中进行修改提交&#xff0c;经常会发生冲突&#xff0c;而且一不小心会把别人的代码内容覆盖掉。为了避免这样的问题&#xff0c;git提供了fork-merge request这样的协同方式。 二、仓库框…

Go1.19 排序算法设计实践 经典排序算法对比

详解经典排序算法 01 为什么要学习数据结构与算法 抖音直播排行榜功能 案例 规则&#xff1a;某个时间段内&#xff0c;直播间礼物数TOP10房间获得奖励&#xff0c;需要在每个房间展示排行榜解决方案 •礼物数量存储在Redis-zset中&#xff0c;使用skiplist使得元素整体有序 •…

在vue中使用codemirror格式化JSON

1. 下载指定版本的包 (避免引发不必要的错误) yarn add codemirror^5.64.02. 导入需要的文件 import CodeMirror from codemirrorimport codemirror/addon/lint/lint.cssimport codemirror/addon/fold/foldgutter.cssimport codemirror/lib/codemirror.cssimport codemirror/t…

ARM DIY(一)电源、SD卡座、SOC 调试

文章目录 前言加热台焊接热风枪吹焊电烙铁补焊电源调试SD 卡座调试DRAM 电路调试串口电路调试SOC 调试成品 前言 之前打样的几块 ARM 板&#xff0c;一直放着没去焊接。今天再次看到&#xff0c;决定把它焊起来。 加热台焊接 为了提高焊接效率&#xff0c;先使用加热台焊接…

uni-app 编译报错 Error: pages.json解析失败,不符合 json 规范Unexpected token ‘)‘

问题 使用webstorm开发项目时&#xff0c;打开pages.json习惯性ctrlaltl把代码格式了&#xff0c;然后报错了。 接着使用HBuilder编译&#xff0c;但是一直显示在编译中&#xff0c;完全没有反映。重启编译器与重启电脑都没有用。 没管然后编译报错了。 加上逗号再运行还是报…

【问题解决】容器部署MySQL的数据在docker commit导出的镜像中丢失

问题起因 最近公司有个甲方项目参加竞赛&#xff0c;要求在(基于kubeflow/arena)平台上部置应用&#xff0c;可以将MySQL打包在应用一起&#xff0c;也可以分开部署&#xff0c;没有提供volume相关的支持。大意是可以把初始好的数据直接拿到平台上。 经过本人在Linux虚机中启…

Ribbon:listOfServers ,${variableName:defaultValue}

解释&#xff1a; 配置了address的地址,请求会走address&#xff0c;也就是http://127.0.0.1:8081&#xff0c;通常用户与别的后端服务进行联调设置为其本地服务的ip。 如果address的地址被注释掉&#xff0c;如下面所示&#xff0c;类似这样的占位符${variableName:defaultVa…

基于Web的数字孪生智慧粮仓可视化管理系统

仓廪实、天下安。民之所需&#xff0c;行之所至。 建设背景 古往今来&#xff0c;粮食问题历来是安邦定国的头等大事。“粮食”作为人类生活的生命之源&#xff0c;在人们的日常生活中起着决定性的作用。收获的粮食归仓&#xff0c;仓储工作是稳定“大国粮仓”的重要环节&…

​LeetCode解法汇总1267. 统计参与通信的服务器

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; 这里有一幅…

centos7搭建apache作为文件站后,其他人无法访问解决办法

在公司内网的一个虚拟机上搭建了httpsd服务&#xff0c;准备作为内部小伙伴们的文件站&#xff0c;但是搭建好之后发现别的小伙伴是无法访问我机器的。 于是寻找一下原因&#xff0c;排查步骤如下&#xff1a; 1.netstat -lnp 和 ps aux 先看下端口和 服务情况 发现均正常 2.…

开学季触控笔哪个牌子好?ipad第三方电容笔推荐

苹果笔和市场上其他的电容笔最大的区别就是&#xff0c;普通电容笔没有重力式的压力感应&#xff0c;然而&#xff0c;只有有一种倾斜式的压力感应。但是&#xff0c;普通的电容笔也可以用来书写&#xff0c;和苹果的Pencil没有太大的差别&#xff0c;而且大部分都是200元。如今…

通过C实现sqlite3操作,导入电子词典

#include <stdio.h> #include <string.h> #include <stdlib.h> #include <sqlite3.h> int main(int argc, const char *argv[]) {//创建并打开一个数据库sqlite3 *db NULL;if(sqlite3_open("./dict.db",&db) ! SQLITE_OK){printf("…

Python“牵手”一号店商品详情API接口运用场景及功能介绍,一号店接口申请指南

一号店是中国首家网上超市&#xff0c;由世界500强副董事长于刚创建。一号店扎根于中国广大的消费市场&#xff0c;以经营吃、喝、拉、撒、睡等人的基本生活工作等用品为主&#xff0c;运用互联网经营&#xff0c;线下配送的模式&#xff0c;打造了属于一号店的经营模式。 一号…