MyBatis 枚举的TypeHandler(非常优雅)

时间匆忙,简单记录一下

导入mybatis-plus包

配置文件

mybatis-plus:
  # 支持统配符 * 或者 ; 分割
  typeEnumsPackage: com.example.mp.entity.enu_m

枚举类,在需要进行枚举处理的字段打上@EnumValue注解

@AllArgsConstructor
@Getter
@ToString
public enum SEX {
    MAN(0,"男人"),WOMAN(1,"女人");


    @EnumValue
    private int code;

    private String sex;
}

实体类@TableField(typeHandler = MybatisEnumTypeHandler.class) 配置上MybatisEnumTypeHandler处理器

@Data
@EqualsAndHashCode(callSuper = false)
@TableName(autoResultMap = true)
public class Student extends Model<Student> {


    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    private String name;

    private Integer teacherId;

    @TableField(typeHandler = MybatisEnumTypeHandler.class)
    private SEX sex;


    @Override
    protected Serializable pkVal() {
        return this.id;
    }


}

如果用Mybatis原生的xml可以也可以配置这个typeHandler

<!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.example.mp.entity.Student">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="teacher_id" property="teacherId"/>
        <result column="sex" property="sex" typeHandler="com.baomidou.mybatisplus.extension.handlers.MybatisEnumTypeHandler"/>
    </resultMap>
经验分享 程序员 微信小程序 职场和发展