mybatis-自定义TypeHandler 的坑

MyBatis自定义TypeHandler
本文介绍在MyBatis中如何使用自定义TypeHandler处理NULL值返回空字符串的情况,并解决返回Map类型数据中NULL字段无法修改的问题。
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<String> {
复制代码

配置文件加载handler包:

mybatis.type-handlers-package=com.lbc.web.util
复制代码

字段值为null,也返回null的问题,重写getResult,去掉

rs.wasNull() ? null : result;
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值