mybatis 枚举类型使用】的更多相关文章

一.首先定义接口,提供获取数据库存取的值得方法,如下: public interface BaseEnum { int getCode(); } 二.定义mybatis的typeHandler扩展类,如下: package com.camelot.assetcenter.sdk.orm.mybatis; import com.camelot.assetcenter.sdk.common.BaseEnum; import com.camelot.openplatform.common.log.Lo…
1. 定义枚举值的接口 public abstract interface ValuedEnum { int getValue(); } 所有要被mybatis处理的枚举类继承该接口 2. 定义枚举类型,并实现ValuedEnum接口 public enum Gender implements ValuedEnum { UNKNOWN("保密", 0), MAIL("男", 1), FAMAIL("女", 2); private String n…
一.简介 我们在用MyBatis里,很多时间有这样一个需求:bean里有个属性是枚举,在DB存储时我们想存的枚举的代号,从DB拿出来时想直接映射成目标枚举类型,也即代号字段与Java枚举类的相互类型转换. 当然,你可以为每个枚举写一个MyEnumTypeHandler,但问题是要为每个类都写一个TypeHandler,过于繁琐. 有了泛型,一个通用的TypeHandler直接搞定. 二.源码 源码详见:spring-mybatis-test 2.1 EnumTypeHandler类 packag…
平时咱们写程序实体类内或多或少都会有枚举类型属性,方便嘛.但是mybatis里怎么处理他们的增删改查呢? 要求: 插入的时候,会用枚举的定义插入数据库,我们希望在数据库中看到的是数字或者其他东西: 查询的时候,数据库的值可以自动转换为我们对应的枚举值. 举例,我有一个这样的枚举类型: Java Code复制内容到剪贴板 ), ); private int status; UserStatus(int status){ this.status = status; } public int getS…
最近工作中用到了mybatis的Java API方式进行开发,顺便也整理下该功能的用法,接下来会针对基本部分进行学习: 1)Java API处理一对多.多对一的用法: 2)增.删.改.查的用法: 3)涉及到类型转化的用法: 4)批量修改.批量查询.批量新增的用法. Mybatis官网给了具体的文档,但是并没有对以上用法具体介绍,因此在这里整理下,以便以后工作用到时,可以参考. 本章主要使用Mybatis中使用typeHandlers进行对Enum进行转化的用法(本章将结合Spring自动注入<S…
MyBatis支持持久化enum类型属性.假设t_user表中有一列gender(性别)类型为 varchar2(10),存储 MALE 或者 FEMALE 两种值.并且,User对象有一个enum类型的gender 属性,如下所示: public enum Gender { MALE,FEMALE; } 默认情况下MyBatis使用EnumTypeHandler来处理enum类型的Java属性,并且将其存储为enum值的名称.我们不需要为此做任何额外的配置.可以像使用基本数据类型属性一样使用e…
第一步:定义顶级枚举接口 public interface BaseEnum<E extends Enum<?>, T> { public T getCode(); public String getValue(); } 第二步:实现枚举接口 public enum AccountTypeEnum implements BaseEnum<AccountTypeEnum,Integer>{ PERSONAL(1,"PERSONAL"), ORGANIZ…
MyBatis内部提供了两个转化枚举类型的typeHandler给我们使用. org.apache.ibatis.type.EnumTypeHandler 是使用枚举字符串名称作为参数传递的 org.apache.ibatis.type.EnumOrdinalTypeHandler 是使用整数下标作为参数传递的 数据库脚CREATE TABLE `user` ( ) NOT NULL AUTO_INCREMENT, `userName` ) DEFAULT NULL, `gender` ) DE…
https://blog.csdn.net/fighterandknight/article/details/51520595 https://blog.csdn.net/fighterandknight/article/details/51599116 https://blog.csdn.net/fighterandknight/article/details/51600997 版权声明:本文为Fighter168原创文章,未经允许不得转载. https://blog.csdn.net/fig…
前言:最近在做一个通用查询单表的组件,所以 sql 的写法就是 select *,然后 resultType="map" .如果数据库中的表里有字段类型为 Long 等类型时,mybatis 在执行 sql 时会报错,如果表中有 Blob.Clob 类型在转 json 是也会报错,而且我这里也需要将这几种类型都转为 String 类型到前端. long 类型 sql 报错: Blob/Clob 转 json 报错: 解决方案: 自定义 typeHandle 来统一处理数据库这些特殊的字…