接口
int getUser(String userName, String pwd);
mapper.xml
<select id="getUserEntity">
select * from rbac_user
where
user_name= #{userName}
and pwd= #{pwd}
</select >
结果运行的时候就报了上面的错误,调试发现传递的参数都是有值的,但是为什么会报这个错。
原来这与Mybatis的参数匹配机制有关,当传递多个参数的时候,映射机制并不清楚如何匹配到正确的参数。
解决办法
1. 使用@Param参数
int getUser(@Param(“userName”) String userName, @Param(“pwd”) String pwd);
2.指定参数位置
<select id="getUserEntity">
select * from rbac_user
where
user_name= #{0,jdbcType=String}
and pwd= #{1,jdbcType=String}
</select >
3.使用map方式传参
int getUser(Map<String, Object> map);
map 的键名对应sql中的字段名称,实质与@Param类似
参考链接如下:https://blog.csdn.net/qq_33764491/article/details/80938651