MyBatis参数
前提
本文中所有的Java Mapper方法参数都是未使用@Param参数声明参数的即Mybatis默认处理参数。
MyBatis参数访问常见错误及解决
以下错误都是MyBatis访问时变量名称与默认参数名称不一致时导致的。
-
Error querying database. Cause: org.apache.ibatis.binding.BindingException: Parameter ‘xxx’ not found. Available parameters are [arg0, collection, list]
单个Collection参数且未通过@Param注解指定名称时报该错误,可以在XML映射文件中将xxx改arg0或collection或list都可以,还可以再Java Mapper参数前添加注解@Param(“xxx”)解决。 -
Error querying database. Cause: org.apache.ibatis.binding.BindingException: Parameter ‘xxx’ not found. Available parameters are [arg1, arg0, param1, param2]
多个参数且未通过@Param(“xxx”)注解指定名称时报该错误,通过@Param(“xxx”)注解指定名称,或者改为单个Map解决。
默认参数访问
单个参数
单个基本类型
Java Mapper
User queryById(Long id);
Xml Mapper
<select id="queryById