如何在MyBatis中使用枚举

来源:互联网 发布:讯飞语音输入法 mac 编辑:程序博客网 时间:2024/05/21 02:37

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

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.EnumTypeHandlerorg.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>

原创粉丝点击