Mybatis下基于注解的Enum类型直接存储与读写
背景知识
做业务时,有些常见属性会存成Enum类型,便于代码复用,比如性别male,female,other,nolimit。当这些属性需要存储到DB中时,我们可能会为Enum指定code,name这样的属性,再将code按照int,name按照varchar存储。读写的时候再进行转换。
实际上,mybatis默认的handler中已经提供了不同的解决方案,便于我们直接读写。
mybatis默认提供了两种Enum类型的handler,EnumTypeHandler
和EnumOrdinalTypeHandler
。
- EnumTypeHandler是将Enum按照String处理,存储为varchar
- EnumOrdinalTypeHandler是将Enum按照int处理,存储为int(smallint,tinyint也可)
示例代码
Enum类
public enum Gender{
male,
female,
other,
umlimit
}
Entity类
Entity中应该将对应的Filed直接设成Enum。