MyBatis 可以映射 Java 枚举类型(Enum)。在 MyBatis 中,枚举类型的默认处理方式是通过 EnumTypeHandler 将枚举值转换为其名称进行存储。这意味着当一个枚举类型的字段被持久化到数据库时,默认情况下它会被保存为枚举名称。

如果你需要自定义枚举类型的处理方式,比如按照枚举的序号(ordinal)或者自定义的属性来存储和读取,你可以编写自定义的 TypeHandler 来实现这些功能:

  1. EnumOrdinalTypeHandler:MyBatis 提供了内置的 EnumOrdinalTypeHandler,该处理器会将枚举的序号(从0开始的索引)与数据库中的数字字段进行映射。
  2. 自定义 TypeHandler:创建自己的 TypeHandler 实现类,指定如何将枚举类型与数据库中的特定类型(如 VARCHAR 或 INT)相互转换。

在映射文件中,你可以在 <resultMap> 或者 <parameterType><typeHandler> 标签下指定使用哪个枚举处理器,或者在全局配置中注册自定义的 TypeHandler,使其对所有相应类型的枚举字段生效。