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,还会过滤调空白字符串,适合做非空的动态条件判断操作