Parameter ‘XXX’ not found. Available parameters are [arg1, arg0, param1, param2]
1.报错
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'headerUrl' not found. Available parameters are [arg1, arg0, param1, param2]
2.分析
mapper层:
int updateHeader(int id, String headerUrl);
xml文件:
<update id="updateHeader">
update user set header_url = #{headerUrl} where id = #{id}
</update>
- 知识点: MyBatis中不允许直接传递多个数据,如果是多值需要转化为单值.
1.将多值数据转化为POJO对象
2.将多值数据转化为Map集合.MyBatis为转化为Map集合提供了注解@Param
3.解决方法:
第一种: 加@Param(“XXX”)起别名
int updateHeader(@Param("id") int id,@Param("headerUrl") String headerUrl);
第二种: 直接用提供的参数
<update id="updateHeader">
update user set status = #{arg1} where id = #{arg0}
</update>
第三种: 设置编译参数