当前位置: 首页 > 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.dtcms.com/a/239567.html

相关文章:

  • 六、接口关联
  • 【Kubernetes】Ingress-nginx快速入门
  • “概率鹦鹉”难解语义等价验证的NPC难题: 从技术本质看LLM在SQL优化任务中的致命缺陷
  • 【Java多线程从青铜到王者】单例设计模式(八)
  • TMC2226超静音步进电机驱动控制模块
  • ConcurrentModificationException 并发修改异常详解
  • 深度学习-1.神经网络理解
  • 博图 SCL 编程技巧:灵活实现上升沿与下降沿检测案例分享(下)
  • LangChain4j(18)——通过Xinference调用Rerank模型
  • 【前端实战】如何让用户回到上次阅读的位置?
  • 【C++】IO库 IO流
  • 禁用思科锐捷设备分页功能
  • redis--黑马点评--Redisson快速入门
  • pytorch卷积层权重之 二维互相关运算(corr2d) (亲测,已解决)
  • 神经网络学习-神经网络简介【Transformer、pytorch、Attention介绍与区别】
  • pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
  • 网页后端开发(基础1--maven)
  • 初探用uniapp写微信小程序遇到的问题及解决(vue3+ts)
  • 如何在 PyTorch 中自定义卷积核参数(亲测,已解决)
  • [免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
  • 设计模式-抽象工厂模式
  • C/Python/Go示例 | Socket Programing与RPC
  • 云原生时代的系统设计:架构转型的战略支点
  • GO语言---init函数
  • Go 语言底层(四) : 深入 Context 上下文
  • 鸿蒙 Stege模型 多模块应用
  • GO 基础语法和数据类型面试题及参考答案(下)
  • 解密鸿蒙系统的隐私护城河:从权限动态管控到生物数据加密的全链路防护
  • FreeRTOS任务基础知识
  • VLLM : RuntimeError: NCCL error: invalid usage