一般造成此问题的原因通常是Dao层的方法含有多个参数
/**
* 根据infoId查询服务列表
*
* @param infoId 信息标识
* @return {@link List}<{@link Map}>
*/
List<Map> selectBytId(String infoId, String isService);
在使用mybatis遇到了一个找不到参数的问题,经过一步一步的源码发下,mybatis默认使用参数下标作为参数名称对参数赋值,即0、1、2等等这些参数名称,只有当使用注解显示标注参数名称才会使用指定的参数名称,举例说明情况
例子1
在mapper的xml文件中的sql如下
select id,username,password from u_user where username=#{username} and passsword=#{password}
mapper类中如下
User getUser(String username,String password)
则上面写法就会报org.apache.ibatis.binding.BindingException: Parameter 'nickname' not found错误
原因如下:
在使用mybatis遇到了一个找不到参数的问题,本着学习的态度跟了下源码,经过一步一步的源码发下,mybatis默认使用参数下标作为参数名称对参数赋值,即0、1、2等等这些参数名称,只有当使用注解显示标注参数名称才会使用指定的参数名称,举例说明情况
栗子1
在mapper的xml文件中的sql如下
select id,username,password from u_user where username=#{username} and passsword=#{password}
mapper类中如下
User getUser(String username,String password)
则上面写法就会报org.apache.ibatis.binding.BindingException: Parameter 'nickname' not found错误
主要原因:
应该是没有指定具体参数名称并一一对应
解决办法:
1 sql改为:select id,username,password from u_user where username=#{0} and passsword=#{1}
2 使用注解指定参数名称:
User getUser(@Param("username")String username,@Param("password")String password)
解决办法:
1 sql改为:select id,username,password from u_user where username=#{0} and passsword=#{1}
2 使用注解指定参数名称:
User getUser(@Param("username")String username,@Param("password")String password)
更多推荐
Mybatis报错: Parameter ‘XXX‘ not found. Available parameters are [arg1, arg0, para
发布评论