org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingExce

报错信息
nested exception is org.apache.ibatis.binding.BindingException: 
Parameter 'roleIds' not found. Available parameters are [arg1, arg0, param1, param2]

在这里插入图片描述
异常出现原因:

mapper.xml映射没有得到传入的参数,这个时候需要在DAO变化传参。
在使用mybatis开发的时候,有时候需要传入多个参数进行查询,当传入多个参数时,不处理便会出现上面的异常报错,这时需要用到一个注解


@Param
用注解来简化xml配置的时候,@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中。简单说就是@Param("orId2") String orId1 在启动时生成一个orId2的属性,把参数orId1的值赋给orId2,这样就可以在申请了中使用#{orId2} 或者${orId2}获取变量,如果不配置@Param("orId2"),就不会有orId2属性,只能用默认的#{orId1}来取值。

代码传参方式:

错误:

    int insertUsetRoles(Integer userId,List<Integer> roleIds);

正确:
属性名称和xml映射文件的名称相同

    int insertUsetRoles(@Param("userId") Integer userId,@Param("roleIds") List<Integer> roleIds);

版权声明:本文为m0_53950051原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。