一、问题
mybatis报错:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'limit' not found. Available parameters are [arg2, offset, param3, userId, param1, param2]

二、解决方法
对于mybatis的接口类中的方法
当方法参数数量大于1时,需要在方法参数中使用@Param把函数参数与Mapper.xml文件中的参数关联
@Mapper
public interface DiscussPostMapper {
//offset:第几行 limit:显示几条
List<DiscussPost> selectDiscussPostsById(@Param("userId") int userId,@Param("offset")int offset,@Param("limit")int limit);
//1. @Param注解用于给参数取别名
//2. 如果这个方法只有一个参数,并且在<if>里使用,则必须取别名
int selectDiscussPostRows(@Param("userId") int userId);
}
解决
本文介绍了在使用MyBatis时遇到的参数未找到异常,问题出现在接口方法参数与Mapper.xml文件中的参数关联不匹配。解决方法是通过在接口方法参数上使用@Param注解,为每个参数指定别名,确保与XML配置文件中的参数名一致。此方法适用于方法参数数量大于1的情况,确保MyBatis能正确解析和绑定参数。
1007

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



