Mybatis中if標籤中的整型判斷問題
阿新 • • 發佈:2018-11-14
用mybatis進行資料修改的時候,age屬性沒有賦值,但是我使用update的時候age這個屬性也被修改了。age屬性是一個int型別。
<set> <if test="name!=null">user_name=#{name},</if> <if test="age!=null">age=#{age},</if> <if test="remark!=null">remark=#{remark},</if> </set>
發現原來這個age為int型別,預設值是0,這個時候0不為null,自然需要update。但是沒有誰的年齡是0歲的。所以如果是0,肯定要被攔截。
解決辦法:
<set>
<if test="name!=null">user_name=#{name},</if>
<if test="age!=null and age!=''">age=#{age},</if>
<if test="remark!=null">remark=#{remark},</if>
</set>
但是這種解決辦法只是對於這種0不能存在的情況下。意思是age不允許為0;
但是如果是id屬性。id是主鍵,主鍵是允許為0。所以在這是id的時候需要在id為0的時候不進行攔截。
解決的辦法是:
<set> <if test="name!=null">user_name=#{name},</if> <if test="age!=null and age!=''">age=#{age},</if> <if test="remark!=null">remark=#{remark},</if> </set> <where> <if test="id!=null and id!='' or id==0">id=#{id}</if> </where>
原文地址:https://blog.csdn.net/qq_28081081/article/details/78532583