handler目录处理器类说明.md 3.1 KB

handler 目录处理器类说明

src/main/java/work/baiyun/chronicdiseaseapp/handler 目录下包含了项目中的各种处理器类,主要用于处理 MyBatis 的类型映射和实体对象的元数据处理。

CustomMetaObjectHandler.java

用途

CustomMetaObjectHandler 是 MyBatis-Plus 的元对象字段处理器,用于自动填充实体对象中的公共字段,如创建时间和更新时间等。

实现细节

  • 实现了 MetaObjectHandler 接口
  • 在插入数据时自动填充以下字段:
    • createTime:创建时间,填充为当前时间
    • updateTime:更新时间,填充为当前时间
    • createUser:创建人 ID,如果为空则填充默认值
    • updateUser:更新人 ID,如果为空则填充默认值
  • 在更新数据时自动填充以下字段:
    • updateTime:更新时间,填充为当前时间
    • updateUser:更新人 ID,如果为空则填充默认值
  • 使用了 Hutool 工具库的 ObjectUtil 来判断字段是否为空
  • 使用 @Component 注解注册为 Spring 组件

GenderTypeHandler.java

用途

GenderTypeHandler 是 MyBatis 的类型处理器,用于处理 Gender 枚举类型与数据库字段之间的转换。

实现细节

  • 继承 BaseTypeHandler 基类
  • 使用 @MappedTypes(Gender.class) 注解标记处理的类型
  • 实现了四个抽象方法:
    • setNonNullParameter:将 Gender 枚举转换为整数存储到数据库
    • getNullableResult:从数据库结果中获取整数值并转换为 Gender 枚举
  • Gender 枚举在数据库中以整数形式存储(1=男,2=女)
  • 支持从 ResultSet 和 CallableStatement 中读取数据
  • PermissionGroupTypeHandler.java

    用途

    PermissionGroupTypeHandler 是 MyBatis 的类型处理器,用于处理 PermissionGroup 枚举类型与数据库字段之间的转换。

    实现细节

    • 继承 BaseTypeHandler 基类
    • 使用 @MappedTypes(PermissionGroup.class) 注解标记处理的类型
    • 实现了四个抽象方法:
      • setNonNullParameter:将 PermissionGroup 枚举转换为整数存储到数据库
      • getNullableResult:从数据库结果中获取整数值并转换为 PermissionGroup 枚举
    • PermissionGroup 枚举在数据库中以整数形式存储(1=管理员,2=医生,3=患者,4=患者家属)
    • 支持从 ResultSet 和 CallableStatement 中读取数据
    • UserBindingTypeHandler.java

      用途

      UserBindingTypeHandler 是 MyBatis 的类型处理器,用于处理 UserBindingType 枚举类型与数据库字段之间的转换。

      实现细节

      • 继承 BaseTypeHandler 基类
      • 使用 @MappedTypes(UserBindingType.class) 注解标记处理的类型
      • 使用 @MappedJdbcTypes(JdbcType.VARCHAR) 注解标记处理的 JDBC 类型
      • 实现了四个抽象方法:
        • setNonNullParameter:将 UserBindingType 枚举转换为字符串存储到数据库
        • getNullableResult:从数据库结果中获取字符串值并转换为 UserBindingType 枚举
      • UserBindingType 枚举在数据库中以字符串形式存储("DOCTOR"=医生,"FAMILY"=家属)
      • 支持从 ResultSet 和 CallableStatement 中读取数据