1、场景
- 接口返回对象或Map对数据进行修改
- 查询的数据对日期类型格式化
- 返回对象中返回自定义的数据字典
2、坑、自定义之后也无效的问题
- 对于返回map类型,数据为NULL的字段,修改无效,因为rs.wasNull()进行了判断。字段为null,则直接返回null
3、讲解
BaseTypeHandler implements TypeHandler 通过getResult方法调用实际接口, 模板模式
4、代码
TypeHandler的类型,处理什么类型的数据
@MappedTypes(value = { String.class})@MappedJdbcTypes(value = JdbcType.VARCHAR, includeNullJdbcType = true)public class EmptyStringIfNull extends BaseTypeHandler{复制代码
配置文件加载handler包:
mybatis.type-handlers-package=com.lbc.web.util复制代码
字段值为null,也返回null的问题,重写getResult,去掉
rs.wasNull() ? null : result;复制代码