MyBatis Plus的类型处理器能用来干吗?

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类型不一致
  • 处理特殊情况

通过实现自定义类型处理器或使用内置处理器,有效解决对象关系问题。