mybatis中对枚举类型的处理

EnumTypeHandler存入数据库的是枚举的name,EnumOrdinalTypeHandler存入数据库的是枚举的位置。例如下方的枚举,当我们有一个枚举值是EStatus.init时,这时我们使用mybatis EnumTypeHandler存入数据库的是"init"字符串;而EnumOrdinalTypeHandler存入的是3,因为init是第四个值,第一个值disable的index是0。

public enum EStatus {
    disable("0"), enable("1"), deleted("2"),init("10"), start("11"), wait("12"), end("13");
}

当没有设置枚举处理器时,mybatis默认使用EnumTypeHandler

Mybatis EnumTypeHandler自定义统一处理器请参考

https://blog.csdn.net/u014044812/article/details/78258730?ticket=ST-37407-ue2hxKqa95tBi6Xdoayo-passport.csdn.net

原文地址:https://www.cnblogs.com/xsl1995/p/10509800.html

时间: 2024-10-08 15:59:43

mybatis中对枚举类型的处理的相关文章

C#中的枚举类型(enum type)

ylbtech 原文 C#中的枚举类型(enum type) 概念 枚举类型(enum type)是具有一组命名常量的独特的值类型.在以下示例中: enum Color { Red, Green, Blue } 声明一个名为 Color 的枚举类型,该类型具有三个成员:Red.Green 和 Blue. 枚举具体是怎么声明呢?枚举声明用于声明新的枚举类型.枚举声明以关键字 enum 开始,然后定义该枚举类型的名称.可访问性.基础类型和成员.具体格式: 修饰词(new.public.protect

C# 中的枚举类型 enum (属于值类型)

原文 C# 中的枚举类型 enum (属于值类型) C# 支持两种特殊的值类型:枚举和结构. 声明枚举:声明时要声明所有可能的值. using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace enumType { enum Season // enum 类型定义在 class 外面 { Spring, Summer, Fall, Winter // 最后一个元素后面

MyBatis配置项--处理枚举类型

若想映射枚举类型Enum,则需要从EnumTypeHandler或者EnumOrdinalTypeHandler中选一个来使用. 比如说想存储取近似值时用到的舍入模式.默认情况下,MyBatis会利用EnumTypeHandler来把Enum值转换成对应的名字. 注意EnumTypeHandler在某种意义上来说是比较特别的,其他的处理器只针对某个特定的类,而它不同,它会处理任意继承了Enum的类. 不过,有时可能不想存储名字,相反,DBA会坚持使用整型值代码.这也是一样轻而易举:在配置文件中把

WebService中使用枚举类型

1.在服务端编写枚举值 public enum BackWorkType { None, Test } 2.为每一个枚举值添加下面属性,添加下面属性后服务可以通过对象字符串进行序列化 [EnumMember(Value = "None")] 3.添加完后枚举变成 public enum BackWorkType { [EnumMember(Value = "None")] None, [EnumMember(Value = "Test")] Te

Java中的枚举类型

枚举类型可以限定只能取特定值中的某一个. 这个是在编译器就可以限定的. 记住一个原则,错误越早发现越好,尽量在编译器发现. 枚举使用enum(小写)关键字 是java.lang.Enum类型,since jdk1.5 语法 public enum MyColor { red, green, blue };//限定了,用户如果要使用MyColor类型的话,就只能呢使用red,green或者blue三者之一. { MyColor m = MyColor.red; switch(m) {//枚举类型的

浅谈java中的枚举类型(转)

用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强. enum Signal { GREEN, YELLOW, RED } pu

C#中的枚举类型enum用法

定义一个简单的枚举类型:   enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};        //这时候         Days.Sat = 0 ,后面依此递增. 当然也可以手动指定起始值:   enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri}; //这样就从1开始了. 枚举型的隐含类型为 int 型, 例如 int x=(int)Days.Sat ; 一点问题没有.据MSDN说枚举类型的隐含类型可以为除

C++类中的枚举类型

在看effective c++的时候,其中第二条边指出.尽量使用const ,enum代替define.在写程序的时候,需要入参为设备类型,第一反应是枚举一个设备类型,并以名字命名.但是有一个问题挺困惑的,类中的枚举到底是以什么形式存在的?枚举变量需不需要分配内存? 带着这个问题,咱们来做一个实验. class test { public: enum type{One,Two, Three}; private: }; int _tmain(int argc, _TCHAR* argv[]) {

Mybatis中,Integer类型参数值为0时得到 ""(空字符串)

今日遇到的问题: 查询版本信息时,由于version是Integer类型,所以当前台选择版本为0时,变成了查询了所有的版本信息. sql片段: </if> <if test="version != null and version != '' ">     AND a.version = #{version} </if> 原因: MyBatis因自身原因默认了 Integer类型数据值等于0时 为 ""(空字符串) 解决办法: 1