MyBatis Plus的类型处理器主要用来解决数据类型与Java类型不匹配的问题。
主要应用场景有:
1. 处理枚举类型
数据库使用代码表示枚举,Java使用实际枚举对象。
使用@EnumValue注解映射:
public enum Sex {
MALE(1), FEMALE(2);
private int value;
Sex(int value){
this.value = value;
}
}
@TableField("sex")
@EnumValue("sex")
private Sex sex;
2. 处理日期类型
数据库使用Timestamp,Java使用Date类型。
使用@TableField解决:
@TableField(typeHandler = DateTypeHandler.class)
private Date birthday;
自定义DateTypeHandler。
3. Java类型与DB类型不匹配
数据库使用CHAR,Java使用String。
可以使用@TableField指定处理器:
@TableField(typeHandler = CharToStringTypeHandler.class)
private String name;
自定义CharToStringTypeHandler。
4. 特殊情况处理
MyBatis Plus内置了多种类型处理器:
- BooleanTypeHandler
- ByteArrayTypeHandler
- InstantTypeHandler
- LocaleTypeHandler
- BigDecimalTypeHandler
- …..
以上处理器可以解决各种特殊类型与DB不匹配的情况。
总的来说, MyBatis Plus的类型处理器可以:
- 处理枚举映射
- 解决日期类型不匹配
- 处理Java类型与DB类型不一致
- 处理特殊情况
通过实现自定义类型处理器或使用内置处理器,有效解决对象关系问题。