# 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 中读取数据