Ibatis中isNotNull和isNotEmpty的区别使用

本文探讨了在MyBatis动态SQL中isNotNull与isNotEmpty的使用区别。isNotNull仅过滤null值,允许空白字符串传递至数据库,适用于需保留空白字符串的场景;isNotEmpty则同时过滤null与空白字符串,更适合非空条件判断。

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

isNotNull和isNotEmpty的区别使用

做到一个需求,需要写一个动态的update语句:但是在为空选择上感到疑惑:就是该选择 isNotNull 还是 isNotEmpty ;

<update id="updateSubstationTicketThreeDynamic">
		UPDATE TABLE_THREE
		<dynamic prepend="set">
			<isNotNull prepend="," property="sttStatus">
				STT_STATUS = #sttStatus#   
			</isNotNull>
			<isNotNull prepend="," property="drawer">
				DRAWER = #drawer#   
			</isNotNull>
			<isNotNull prepend="," property="ptDate">
				PT_DATE = #ptDate#   
			</isNotNull>


			//或者是isNotEmpty的
			<isNotEmpty prepend="," property="sttStatus">
				STT_STATUS = #sttStatus#   
			</isNotEmpty>
			<isNotEmpty prepend="," property="drawer">
				DRAWER = #drawer#   
			</isNotEmpty>
			<isNotEmpty prepend="," property="ptDate">
				PT_DATE = #ptDate#   
			</isNotEmpty>

	
		</dynamic>
		WHERE
		STT_ID = #sttId#

	</update>

通过测试下来得到:

isNotNull比较适用于修改语句,因为中间涉及到**“将已经存在值得字段清空的需求”**,而在这一个条件下,
	isNotNull只会过滤掉null,会将空白字符串传到数据库进行处理;
	isNotEmpty不但会过滤null,还会过滤调空白字符串,适合做非空的动态条件判断操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值