1. 程式人生 > >Mybatis中if標籤中的整型判斷問題

Mybatis中if標籤中的整型判斷問題

用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