设计数据库时,有时为了方便,我们会把某些字段设置为字典类型。比如用户性别,用1表示男性,2表示女性,3表示保密。但是在Javabean中,我又希望这些字典能够自动与枚举类型对应上,或者说转化为枚举对象。
小博老师今天就跟大家介绍下Mybatis中如何实现数据库字典与枚举类型的转换。
如上,我们假设User表中的gendar字段定义为了1/2/3分别表示男/女/保密。那么先设计一个与之对应的枚举类,代码如下:
getGendarByCode方法是通过性别的值(字典代码)获取枚举对象。
User Java Bean源代码如下:
性别属性类型设置为GendarEnum,也就是前面定义的枚举类型。
接下来我们要定义一个TypeHandler,把数据库字典与枚举对象对应上,代码如下:
我们还要在Mapper xml中配置User属性GendarEnum的TypeHandler:
运行如下的测试案例,即可打印出性别的名称: