xml文件更新语句: <update id="update" parameterType="com.example.demo.entity.User"> update `user` <set> <if test="name != null and name!=''"> name = # {user.name}, </if> <if test="desc != null and desc!=''"> desc = # {user.desc} </if> </set> where id = # {user.id} </update>
控制台报错org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'name' not found. Available parameters are [user, param1]
<update id="update" parameterType="com.example.demo.entity.User">
update `user`
<set>
<if test="name != null and name!=''">
name = # {user.name},
</if>
<if test="desc != null and desc!=''">
desc = # {user.desc}
</if>
</set>
where id = # {user.id}
</update>
报错的信息告诉你name找不到,
<if test="name != null and name!=''"> //这里报错了,应该用user.name!=null and user.name!=''
name = # {user.name},
</if>
最后正确的修改是:
<update id="update" parameterType="com.example.demo.entity.User">
update `user`
<set>
<if test="user.name != null and user.name!=''">
name = # {user.name},
</if>
<if test="user.desc != null and user.desc!=''">
desc = # {user.desc}
</if>
</set>
where id = # {user.id}
</update>
问题解决请采纳!!!
mapper的修改接口加参数绑定了吗@Param(“user”)
- -
实体类User记得添加getter setter方法 mapper方法参数 update(User user) <update id="update" parameterType="com.example.demo.entity.User"> update `user` <set> <if test="name != null and name!=''"> name = # {name}, </if> <if test="desc != null and desc!=''"> desc = # {desc} </if> </set> where id = # {id} </update>