在初次使用mybits的时候,经常遇到下面的问题,很是头疼,后来通过阅读博客终于解决了该问题!!
org.apache.ibatis.binding.BindingException: Parameter 'company' not found. Available parameters are [1, 0, param1, param2] 报错解决
经常使用mybatis或者跟数据库打交道的都老爱语句这个异常,那么就总结一下解决方案,省得我下次又去找。
1、Dao层的抽象方法中的参数一般情况下默认的是一个参数或者一个对象;
当我们需要传递多个参数时就会经常遇到上面的问题
解决非常简单
如下:在controller和dao下都加入@param()就可轻松解决上面的问题
Mybatis默认参数传递方式
Mybatis关于各种类型的单参数默认的写法如下:
类型 | 接收参数方式 |
基本数据类型 | 顺序,如#{0},也可以用name直接获取,如#{name} |
List | list |
数组 | array |
Map | 根据key获取map中各参数即可,如#{key} |
自定义的对象 | 根据get方法对应的参数,使用name获取即可,如#{name} |
如果是多参数,比如public User find(String address, List<Integer> idList), 使用注解@Param("")或者考虑封装在map中传递。