失效代码情况如下:
<insert id="addUser">
insert into user_data(id,name
<if test="age!=null and age!=''">,age</if>
)values (#{id},#{name}
<if test="age!=null and age!=''">,#{age}</if>
)
</insert>
当age为零的时候,数据库中没有将年龄进行插入。
原因:因为mybatis会默认将int类型的字段为0的值转化为空字符串,所以int类型的字段判断是否为空的时候应该去掉空字符的判断,修改之后即可正差插入(另外测试了一下Long类型也会存在此问题)。