一,简介
在iBATIS中isNull用于判断参数是否为Null,isNotNull相反
isEmpty判断参数是否为Null或者空,满足其中一个条件则其true
isNotEmpty相反,当参数既不为Null也不为空是其为true
判断之后做相对应的表达式操作
二,区别
1 <update id="updateRole" parameterClass="com.mmblue.model.Role"> 2 <![CDATA[ 3 UPDATE role 4 SET 5 gmt_modified = to_date(#gmtModified#,'yyyy-mm-dd hh24:mi:ss'), 6 modifier = #modifier# 7 ]]> 8 <dynamic> 9 <isNotEmpty property="isDeleted" prepend=","> 10 <![CDATA[ 11 is_deleted = #isDeleted# 12 ]]> 13 </isNotEmpty> 14 <isNotEmpty property="roleCode" prepend=","> 15 <![CDATA[ 16 role_code = #roleCode# 17 ]]> 18 </isNotEmpty> 19 <isNotEmpty property="roleName" prepend=","> 20 <![CDATA[ 21 role_name = #roleName# 22 ]]> 23 </isNotEmpty> 24 <isNotEmpty property="deptId" prepend=","> 25 <![CDATA[ 26 dept_id = #deptId# 27 ]]> 28 </isNotEmpty> 29 </dynamic> 30 <![CDATA[ 31 WHERE id = #id# 32 ]]> 33 </update>
通过上面的代码可以看到假如用isNotEmpty的时候页面假如有值,现在改成空的字符串数据库是不会有效果的,因为isNotEmpty判断的是null和“”这两个属性,所以就不会进这个方法
假如要用的话必须用isNotnull这个值判断null,而不判断“”,所以最后会把有值的改成空的字符串的。