关于这个看了很多例子都很模糊
在iBATIS中isNull用于判断参数是否为Null,isNotNull相反
isEmpty判断参数是否为Null或者空,满足其中一个条件则其true
isNotEmpty相反,当参数既不为Null也不为空是其为true
例子:
<update id="updateYbAndSb" parameterClass="java.util.HashMap">
UPDATE MZSF_CLININVOINFO T
<dynamic prepend="SET">
<isNotNull property="YBZHCODE">
<isEmpty property="YBZHCODE" prepend=","> T.YBZHCODE = NULL</isEmpty>
<isNotEmpty property="YBZHCODE" prepend=","> T.YBZHCODE = #YBZHCODE#</isNotEmpty>
</isNotNull>
<isNotNull property="HOSPID">
<isEmpty property="HOSPID" prepend=","> T.HOSPID = NULL</isEmpty>
<isNotEmpty property="HOSPID" prepend=","> T.HOSPID = #HOSPID#</isNotEmpty>
</isNotNull>
<isNotNull property="SBZFJE">
<isEmpty property="SBZFJE" prepend=","> T.SBZFJE = NULL</isEmpty>
<isNotEmpty property="SBZFJE" prepend=","> T.SBZFJE = #SBZFJE#</isNotEmpty>
</isNotNull>
<isNotNull property="SBZFXJJE">
<isEmpty property="SBZFXJJE" prepend=","> T.SBZFXJJE = NULL</isEmpty>
<isNotEmpty property="SBZFXJJE" prepend=","> T.SBZFXJJE = #SBZFXJJE#</isNotEmpty>
</isNotNull>
</dynamic>
WHERE T.SFID = #SFID#
AND T.FORGID = #FORGID#
</update>
上面sql语句,如果 YBZHCODE传入的是null 即:
hashMap.put("YBZHCODE",null); 则sql语句中不会更新这个字段
如果YBZHCODE传入的是空 即:
hashMap.put("YBZHCODE",“”); 则sql语句 会将这个字段更新成null,为空
如果有值,则更新成传入的值