肥桃的JavaBug记录11:mybatis中对json字段内的字段判空

在遇到因外部接口传递空值导致数据库记录被错误更新的问题时,本文介绍了一种利用MyBatis动态SQL中的if标签结合JSON_SET函数来判断传入参数是否为空的方法,从而避免了不必要的数据库更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写项目遇到了bug, 经过排查是mybatis的xml中出现了问题
在这里插入图片描述
在另一项目通过接口向本项目传值的时候json字段中的一个字段是空,导致每次调用方法都会把数据库中原本的值覆盖成null.
由于另一项目需要修改的内容过多,非常难以修正,于是想在本项目中通过mybatis标签进行判空,如果传来是空值就不操作数据库.
这是传入中的ext字段:
在这里插入图片描述
内部:
在这里插入图片描述
可以看到有四个属性是需要判断是否为空的, 于是修改了一下mybatis的xml文件中的语句:
在这里插入图片描述
JSON_SET可以多次重复使用, 结果是只操作其中一个key value, 通过在动态sql中用if标签拼接, 可以实现对传入数值的判空.
当然还需要使用
在这里插入图片描述
用来去除语句中多余的逗号, 否则会报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值