java Long类型传值0,mapper.xml会判定为空?
时间: 2024-03-02 19:50:53 浏览: 118
在Java中,Long类型的默认值为null。在MyBatis中,如果我们在Mapper.xml中使用了<if>标签判断Long类型的值是否为空,那么当Long类型的值为null时,<if>标签会认为它是空的,因为null是空引用。因此,在使用<if>标签判断Long类型的值是否为空时,我们应该使用isNotNull或isNull来判断它是否为null。例如:
```
<select id="getUserById" resultType="User">
select * from user where id = #{id}
<if test="age != null">
and age = #{age}
</if>
</select>
```
在这个例子中,如果age为null,<if>标签会认为它为空,因此不会加上and age = #{age}这个条件。如果age不为null,<if>标签会认为它非空,因此会加上and age = #{age}这个条件。注意,这里我们使用了!=null来判断age是否为null,因为age是一个Long类型的对象,我们需要判断它是否为null对象,而不是判断它的值是否为0。
阅读全文