接口是这样写的,调用一直报错。
/**
* 更改用户的姓名
* @param oldName 旧名字
* @param newName 新名字
* @return
*/
@Update("update users set name =#{0} where name =#{1}")
int updateUserInfo( String newName,String oldName );
报错:org.apache.ibatis.binding.BindingException: Parameter '0' not found. Available parameters are [arg1, arg0, param1, param2]
修改后:
/**
* 更改用户的姓名
* @param oldName 旧名字
* @param newName 新名字
* @return
*/
@Update("update users set name =#{arg0} where name =#{arg1}")
int updateUserInfo( String newName, String oldName );
将 替换符里的 0,1修改为 arg0, arg1 ,错误解决了!
后查询得知,mybatis3.4.2或者之后的版本,就会产生绑定异常。
本文介绍了一种常见的MyBatis使用问题,即在更新SQL语句中使用占位符时遇到的参数绑定异常,并提供了正确的解决方案。通过将占位符更改为arg0和arg1,成功解决了在MyBatis 3.4.2及更高版本中出现的错误。
753

被折叠的 条评论
为什么被折叠?



