当前位置: 首页 > news >正文

MybatisPlus枚举类的应用与转换

一、枚举类的应用

现在有个类User,User中有属性Status,那么我们可以设置一个枚举类UserStatusEnum来设定这个status。

在status中我们会设置一个值val(整形)用于标识当前枚举的实际状态,一个introduction(String类型,用于描述枚举的信息)

此时,如果我们要将user的某个实例存入数据库中,就会出现问题。

一般而言我们会去定义status为整形静态常量,这样可以很方便将user进行存入。

现在修改status为单独的enum类,现在存入遇到问题,可以使用MP进行解决。

首先需要在配置文件中写入

mybatis-plus:  configuration:default-enum-type-handler:            com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler

来开启枚举注解

然后在对应的enum类中,对枚举类的值进行标记(标记值用于数据库的读取):

@Getter
public enum UserStateEnum {NORMAL(1,"正常状态"),FREEZE(2,"冻结状态"),;@EnumValueprivate final int val;@JsonValueprivate final String description;UserStateEnum(int val, String description) {this.val = val;this.description = description;}
}

总结:

要引入enum类,MP需要:

1.先引入配置文件

2.标记enum类中对应的值,用于数据库的存取

二、Jason字符串与类的转换

User类中有个info 属性,用于描述用户的年龄、基本介绍以及性别,现在这个属性需要以jason格式来进行存储,显然我们自行定义jason格式就会很麻烦。

所以引入MP的类型转换功能:

1.将原本的String info 转换为UserInfo info。也就是自行定义一个类,类中属性包含年龄、基本介绍以及性别。

2.使用MP的注解来使其能够正确转换:@TableFiled(typeHandler = JacksonTypeHandler.class)

@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@TableName(value = "user",autoResultMap = true)
public class User {@TableId(type = ASSIGN_ID)Long id;String username;String password;String phone;@TableField(typeHandler = JacksonTypeHandler.class)UserInfo info;UserStateEnum status;Double balance;LocalDateTime createTime;LocalDateTime updateTime;
}

http://www.xdnf.cn/news/957601.html

相关文章:

  • L1和L2核心区别 !!--part 2
  • 基于人工智能的闸机人脸识别门禁系统
  • 昇腾CANN集合通信技术解读——细粒度分级流水算法
  • CMake 从 GitHub 下载第三方库并使用
  • 高端性能封装正在突破性能壁垒,其芯片集成技术助力人工智能革命。
  • ABAP设计模式之---“童子军法则(The Boy Scout Rule)”
  • animate.css详解:轻松实现网页动画效果
  • 制作一款打飞机游戏68:地面敌人
  • CopyOnWriteArrayList和CopyOnWriteArraySet :并发安全的写时复制机制
  • 新手指南:如何轻松将文件压缩为RAR格式
  • Android多媒体——音/视频数据播放(十八)
  • 如何实现高可用评论服务
  • gtxe2_channel内部参数和寄存器配置-CPLL超频设计,超过6.6Gbps的最高速率
  • OpenHarmony按键分发流程(60%)
  • 4.redis集群
  • rk3568的data分区修改
  • 以太网PHY布局布线指南
  • Houdini POP入门学习07 - 分组
  • 热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁
  • 论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
  • 游戏开发中常见的战斗数值英文缩写对照表
  • ubuntu中安装conda的后遗症
  • 3439. 重新安排会议得到最多空余时间 I
  • vue3 报错Missing semicolon
  • Yolov8 目标检测蒸馏学习记录
  • 【2025】pycharm 安装
  • 详解什么是One-Hot Encoding (独热编码)
  • PH热榜 | 2025-06-08
  • Ascend NPU上适配Step-Audio模型
  • C语言数据结构笔记4:子函数中使用的sizeof 指针无法获取数组的实际大小