MyBatis-Plus 对枚举提供了良好的支持,使得开发者能够更方便地在数据库操作中使用枚举类型。以下是对 MyBatis-Plus 枚举支持的详细解释、配置方法、使用示例以及可能遇到的问题和解决方法。 1. MyBatis-Plus 对枚举的支持情况 MyBatis-Plus 提供了两种主要方式来处理枚举类型: 实现IEnum 接口:早期的 MyBatis-Plus ...
mybatis-plus.configuration.default-enum-type-handler=org.apache.ibatis.type.EnumOrdinalTypeHandler AI代码助手复制代码 2、定义一个枚举,在需要存入数据库的字段上加上@EnumValue注解 packagecom.iscas.biz.mp.test.model.enums;importcom.baomidou.mybatisplus.annotation.EnumValue;importcom.fasterxml.jackson.annot...
其实,跟一下代码,可以发现,跟我们自己手写一个typeHandler没区别,这里最终获取转换值时,调用了.baomidou.mybatisplus.extension.handlers.MybatisEnumTypeHandler#getNullableResult(java.sql.ResultSet, int),此时已经拿到了枚举值的具体类是什么了。接下来就是调用valueOf去获取对应的枚举值即可。 附源码: package org...
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl #扫描通用枚举的包 mybatis-plus.type-enums-package=com.shrimpking.enums 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 实体类 User.java package com.shrimpking.pojo; import com.baomidou.mybatisplus.annotation.IdType; im...
@EnumValue注解作为MyBatis Plus提供的强大特性,使枚举值与数据库字段的映射变得更加便捷和高效。无论是基本的映射方式,还是自定义的映射逻辑,@EnumValue注解都能够满足各种情况下的需求。通过合理使用这一注解,开发者能够轻松地实现枚举值与数据库字段值的映射,避免手动转换的繁琐步骤,提升持久层开发的效率和代码质量。
说一下上面的@EnumValue注解,@EnumValue用来标记数据库存的值 mybatis原生默认是以枚举的名称: Enum.name()作为默认值,即User类中定义的属性 private SexEnum sex; 默认向数据库存的时候会将SexEnum.MAN.name()的值存入数据库(String类型),使用@EnumValue注解标识SexEnum类中的code属性后,保存数据库时就会取值cod...
#mybatis-plus.configuration.default-enum-type-handler=org.apache.ibatis.type.EnumOrdinalTypeHandler AI代码助手复制代码 第三步: pojo中的sex属性设置为枚举SexEnum; @ApiModelProperty(value ="性别")@TableField("sex") private SexEnum sex; AI代码助手复制代码 ...
Mybatis-Plus 通用枚举及前后端交互实战经验 一、前言 二、使用示例 1.全局配置 2.枚举类 3.实体类 三、后端返回结果给前端(以jackson为例) 1.@JsonValue 2.@JsonFormat(shape= JsonFormat.Shape.OBJECT) 四、前端传参给后端 1.POST请求-application/json方式 ...
在Mybatis-plus中,使用@EnumValue注解可以将数据库中的枚举类型字段映射到Java枚举类型,同时也可以在查询时将Java枚举类型的值转换为数据库中的枚举类型字段。这个注解的使用可以大大简化我们在处理枚举类型数据时的代码量,提高开发效率。下面是一个使用@EnumValue注解的示例:首先,我们定义一个Java枚举类型: public enum...
通常可以为每个Enum类配置一个TypeHandler,但是这种比较繁琐,这里通过注解配合Mybatis的默认EnumTypeHander配置实现通用枚举TypeHander。(代码来自Mybatis-Plus,做了一些小改动) 定义一个注解 @Documented @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})public@interfaceEnumValu...