mybatis将传入的Integer类型的0被识别成空字符串的问题

博客指出Integer类型数据为0传到后台时,会被识别为空字符串,导致无法进入判断的SQL而进行全查询。并提出问题,暗示有解决办法,核心围绕该数据类型传值异常问题展开。

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

在这里插入图片描述
在这里插入图片描述
经过大佬的指点,后来求证在网上搜索一番,果然是存在这样一个问题:

当传入为0的时候,会被识别成“ ”,空字符串,根据mapper文件里的代码来看,自然就不会进入判断的sql,所以就是全查询了。

经过大佬的指点,后来求证在网上搜索一番,果然是存在这样一个问题:

当传入为0的时候,会被识别成“ ”,空字符串,根据mapper文件里的代码来看,自然就不会进入判断的sql,所以就是全查询了。

但是有没有什么办法解决呢?答案还是有滴:
总结一下问题:Interger类型的数据,当为0的时候传到后台,会被识别成" "(空字符串)处理。

<if test="roleOrder != null and roleOrder != ''">
	and t.roleOrder = #{roleOrder} 
</if>

改成

<if test="roleOrder != null ">
        and t.role_order = #{roleOrder} 
</if>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值