可以通过Mybatis的一些接口,自定义枚举类的处理器实现 环境准备 开发环境 JDK 1.8 SpringBoot2.2.1 Maven 3.2+ 开发工具 IntelliJ IDEA smartGit Navicat15 定义一个接口 先定义一个IEnum接口,@JsonFormat格式为对象返回 package com.example.springboot.mybatis.common.enumhandler; import com.fasterxml.jackson.anno...
mybatis内置了两个枚举类型处理器,EnumTypeHandler和EnumOrdinalTypeHandler,这两个类型都不好用,一般也是我们自己实现枚举的类型处理器。 EnumTypeHandler存入数据库的是枚举的name,EnumOrdinalTypeHandler存入数据库的是枚举的位置。例如下方的枚举,当我们有一个枚举值是EStatus.init时,这时我们使用mybatis的EnumTypeHandler存...
类型处理器(TypeHandler) 内置的枚举处理器 EnumTypeHandler源码 自定义枚举类处理 通用枚举处理器 Git 类型处理器(TypeHandler) 无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时,都会用类型处理器将获取的值以合适的方式转换成 Java 类型。 通过类型处理器(TypeHandler),可...
1. 自定义注解用于标识枚举字段code值(可以使用Jackson自带的@JsonValue注解,也可以单独自定义注解),注解标识的字段类型非固定类型,可为`Integer`、`Long`、`String`等其他基本类型或其他类型(其他类型请多测试) 2. 自定义枚举类型处理器MyBatisEnumTypeHandler.java继承自org.apache.ibatis.type.BaseTypeHandler,用于处...
默认myBatis在处理枚举的时候保存的是枚举的名字:EnumTypeHandler。 改变使用:EnumOrdinalTypeHandler,在核心配置文件中进行设置 1 <typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler"javaType="com.njf.mybatis.bean.EmpStatus"/> 三、自定义 TypeHandler 处理枚举 ...
在和前端开发对接接口过程中经常发现需要一些枚举类的字典参数,虽然可以通过swagger在线文档给前端开发,不过可以直接返回枚举的编码和字典值就可以更直观,所以在项目里怎么实现?可以通过Mybatis的一些接口,自定义枚举类的处理器实现 环境准备 开发环境 JDK 1.8
查询映射自定义枚类型 1.重写或者自定义类型处理器来不支持的类型 1.1 为所有类型设置一个枚举接口 publicinterfaceIEnum{intgetKey();voidsetKey(intkey);StringgetValue();voidsetValue(Stringvalue);} 1.2 为这个接口统写一个handle public class EnumKeyTypeHandler extends BaseTypeHandler<IEnum> { ...
1.创建数据表Status 2.创建实体类UserStatus 其中Status是一个枚举类型 3.创建对应的类型处理器 自定义类型处理器,只需要 ==实现TypeHandl...
3.定义枚举类的处理器 publicclassEnumTypeHandlerextendsBaseTypeHandler<DbEnum>{privateClass<DbEnum>enum...
对于enum而言,在mybatis中已经存在了EnumTypeHandler和EnumOrdinalTypeHandler两大处理器,他们都是继承自BaseTypeHandler处理器,那为何不能使用mybatis自定义的enum处理器而是要自己再定义枚举处理器呢?下面为您一步一步剖析。 分析 首先说说EnumTypeHandler与EnumOrdinalTypeHandler两者之间的区别吧: ...