mapper.xml sql与我们的java语法有些相同,当进行动态语句if查询时,我们需要注意字段类型。
<update id="update" parameterType="com.itheima.reggie.entity.Employee">
update employee
<set>
<if test="name != null and name != ''">
name = #{name},
</if>
<if test="username != null and username != ''">
username = #{username},
</if>
<if test="password != null and password != ''">
password = #{password},
</if>
<if test="phone != null and phone != ''">
phone = #{phone},
</if>
<if test="sex != null and sex != ''">
sex = #{sex},
</if>
<if test="idNumber != null and idNumber != ''">
id_number = #{idNumber},
</if>
<if test="status != null status !='' ">
status = #{status},
</if>
<if test="createTime != null createTime !=''">
create_time = #{createTime},
</if>
<if test="updateTime != null updateTime !=''">
update_time = #{updateTime},
</if>
<if test="updateUser != null ">
update_user = #{updateUser}
</if>
</set>
where id = #{id}
</update>
</mapper>
以上sql动态更改语句看似没有问题,进行了字段非空的判断.但是数据类型不同那么我们的if语句也应该不同,非字符类型不应该使用xxxx != '';
这会引起数据类型转换的异常。因此数据不会显示和存储