您的位置:首页 > 其它

如何在MyBatis中使用枚举

2017-09-11 11:29 211 查看
在编码过程中,经常会遇到用某个数值来表示某种状态、类型或者阶段的情况,比如有这样一个枚举:

public enum ComputerState {
OPEN(10),         //开启
CLOSE(11),         //关闭
OFF_LINE(12),     //离线
FAULT(200),     //故障
UNKNOWN(255);     //未知

private int code;
ComputerState(int code) { this.code = code; }
}


首先,我们先看看MyBatis是否能够满足我们的需求。

MyBatis内置了两个枚举转换器分别是:
org.apache.ibatis.type.EnumTypeHandler
org.apache.ibatis.type.EnumOrdinalTypeHandler


EnumTypeHandler

这是默认的枚举转换器,该转换器将枚举实例转换为实例名称的字符串,即将
ComputerState.OPEN
转换
OPEN


EnumOrdinalTypeHandler

顾名思义这个转换器将枚举实例的ordinal属性作为取值,即
ComputerState.OPEN
转换为
0
,
ComputerState.CLOSE
转换为
1


使用它的方式是在MyBatis配置文件中定义:
<typeHandlers>
<typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler" javaType="com.example.entity.enums.ComputerState"/>
</typeHandlers>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis enum