使用mybatis-plus转换枚举值
1. 使用mybatis-plus转换枚举值
枚举值转换方式有很多,有以下方式:
后端写一个通用方法,只要前端传枚举类型,后端返回相应的枚举值前端去匹配
优点:能够实时保持数据一致性
缺点:如果有大量的枚举值转换,请求频繁,对服务造成不必要的压力,可以优化:将每个页面配置一个大的枚举,然后里边包含具体的枚举,这样操作比较繁琐,新增枚举都要修改,不推荐使用
使用注解
以下介绍以下使用mybatis-plus的注解处理枚举值,当然也可以自定义注解完成枚举值的转换
1.1 方式一
实现IEnum方法
public enum SexEnum implements IEnum<Integer> {
MALE(1, "男"),
FEMALE(2, "女");
SexEnum(Integer code, String value) {
this.code = code;
this.value = value;
}
private final Integer code;
private final String value;
@Override
public Integer getValue() {
return this.code;
}
}
===================================vo=========================
public class UserVo {
private Long id;
private String name;
private Integer age;
private String email;
/**
* VO性别类型为刚刚新建的枚举类型
*/
private SexEnum sex;
}
yml中的配置:
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
type-enums-package: com.example.mybatisplus.enum #枚举类的包路径,一定不也能错,否则报错
1.2 方式二
public enum SexEnum {
MALE(1, "男"),
FEMALE(2, "女");
SexEnum(Integer code, String value) {
this.code = code;
this.value = value;
}
/**
* 标记数据库存的值是code
*/
@EnumValue
private final Integer code;
/**
* 要返回的值
*/
private final String value;
public Integer getCode() {
return code;
}
public String getValue() {
return value;
}
}
其余的都一样
使用mybatis-plus转换枚举值的更多相关文章
- c++11 实现枚举值到枚举名的转换
效果 ``` ENUM_DEFINE ( Color, Red, Blue, ) EnumHelper(Color::Red) -> "Red" EnumHelper(Col ...
- .NET陷阱之六:从枚举值持久化带来大量空间消耗谈起
好长时间没有写博文了,今天继续. 这次跟大家分享的内容起因于对一个枚举值列表的序列化,下面简化后的代码即能重现.为了明确起见,我显式指定了枚举的基础类型. // 定义一个枚举类型. public en ...
- MVC3不能正确识别JSON中的Enum枚举值
一.背景 在MVC3项目里,如果Action的参数中有Enum枚举作为对象属性的话,使用POST方法提交过来的JSON数据中的枚举值却无法正确被识别对应的枚举值. 二.Demo演示 为了说明问题,我使 ...
- C#记录日志、获取枚举值 等通用函数列表
) { ] >= && ipvals[] <= && ipval ...
- Kendo Grid控件中将枚举值转为枚举名显示
我们在开发过程中经常会遇到需要将枚举值转换成名称进行显示的情况.如下我们有这样一个数据源对象: var users = [ {id: 1, name: "similar1", st ...
- 解决ASP.NET MVC4中使用Html.DropDownListFor显示枚举值默认项问题
从ASP.NET MVC 5开始,Html.DropDownListFor已经提供了对Enum的支持,但在这以前,需要通过帮助方法或扩展方法来让Html.DropDownListFor显示枚举值. 本 ...
- MyBatis(八):Mybatis Java API枚举类型转化的用法
最近工作中用到了mybatis的Java API方式进行开发,顺便也整理下该功能的用法,接下来会针对基本部分进行学习: 1)Java API处理一对多.多对一的用法: 2)增.删.改.查的用法: 3) ...
- 问题-MyBatis不识别Integer值为0的数据
问题-MyBatis不识别Integer值为0的数据 问题:使用MyBatis的过程中,发现一个值为0的数据,Mybatis所识别,最后定位才发现,是自己的写法有问题, <if test=&qu ...
- AX2012 multiple enum values as query filter选择多个枚举值当过滤条件
classDeclaration { QueryBuildRange qbrLocationType; } datasource.init() { super(); qbrLocationType = ...
- 获取枚举值上的Description特性说明
/// <summary> /// 获取枚举值上的Description特性说明 /// </summary> /// <typeparam name="T&q ...
随机推荐
- NVM管理多个Node版本
在项目中,我们常常会遇到node版本问题的一些报错,像是vue 3需要node10以上版本,不同的 node-sass 版本需要安装不同的 node.js 版本,为了统一管理node版本,我们需要用 ...
- 详解AQS二:ReentrantLock公平锁原理
ReentrantLock作为我们使用频率最高的显式锁,它是AQS的经典实现,本篇文章将以ReentrantLock公平锁为例讲解AQS的实现. 一.ReentrantLock 在之前的文章<线 ...
- 《数据万象带你玩转视图场景》第一期:avif图片压缩详解
前言 随着硬件的发展,不管是手机还是专业摄像设备拍出的图片随便可能就有几M,甚至几十M,并且现在我们处于随处可及的信息海洋里,海量的图片带来了存储问题.带宽问题.加载时延问题等等.对图片信息进行有效的 ...
- node 使用 pm2-logrotate 分割pm2日志 && 停止 pm2-logroatate
使用pm2-logrotate 解决pm2日志体积过大,进行分割 什么是pm2-logrotate? pm2-logrotate 是一个pm2的插件,可以对pm2日志进行管理,所以它的运行需要依靠pm ...
- 2000 Star,是时候为我的开源项目更新下功能了
哈喽啊,我是阿朗,马上就要年末了,已经半年多没有更新文章了.年初定的计划早已经忘的一干二净.再不捡起来一点东西,就要2025年了. 要写点东西了. 你是一个博客撰写专家,你擅长开发领域,你喜欢使用通俗 ...
- 更改 macOS 用户帐户和个人文件夹的名称
https://support.apple.com/zh-cn/HT201548 您可以对创建 macOS 用户帐户时命名的用户帐户和个人文件夹进行重命名. 您的 macOS 用户帐户名称和您个人 ...
- 聊一聊 C#线程池 的线程动态注入 (下)
一:背景 1. 讲故事 前面二篇我们聊到了 Thread.Sleep 和 Task.Result 场景下的线程注入逻辑,在线程饥饿的情况下注入速度都不是很理想,那怎么办呢?有没有更快的注入速度,这篇作 ...
- 用 Cursor 写出第一个程序
大家好,我是汤师爷 最近几个月,Cursor迅速走红,成为一款强大的编程助手.Cursor不仅使用简单,而且通过集成各种大模型技术,编程能力一流. Cursor是什么? Cursor是一个类似VSCo ...
- Qt/C++音视频开发59-使用mdk-sdk组件/原qtav作者力作/性能凶残/超级跨平台
一.前言 最近一个月一直在研究mdk-sdk音视频组件,这个组件是原qtav作者的最新力作,提供了各种各样的示例demo,不仅限于支持C++,其他各种比如java/flutter/web/androi ...
- Qt编写安防视频监控系统45-图文报表
一.前言 图文报表对应以前的文字报表,以前的日志查询后,需要打印或者导出,都是一行行的文字记录,近期需要图文警情记录打印和导出,于是彻底趁机将之前的数据导入导出(xls/pdf)及打印组件彻底改造重写 ...