打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
报错org.apache.ibatis.binding.BindingException: Parameter xxxxx not found.

报错Parameter ‘xxxx’ not found. Available parameters are [0, 1, param1, param2…

1.报错信息

  今天使用mybatis查询数据的时候,出现org.apache.ibatis.binding.BindingException: Parameter ‘username’ not found. Available parameters are [0, 1, param1, param2] 问题。

报错信息:

文字:

org.apache.ibatis.binding.BindingException: Parameter 'username' not found. Available parameters are [0, 1, param1, param2]    at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:168)    at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45)    at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:122)    at org.apache.ibatis.executor.BaseExecutor.createCacheKey(BaseExecutor.java:212)    at org.apache.ibatis.executor.CachingExecutor.createCacheKey(CachingExecutor.java:139)    at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:81)

2.产生原因

字面上,就是说Mybatis并没有匹配到这个参数。

3.解决方案

使用注解@Param(“XXX”)来完成。


1.当只有一个参数时,Mapper/Dao层中的方法是可以不使用注解的。
比如插入数据的时候:

public void insertAdmin(String username);

2.多个参数时必须用@Param(“XXX”)来指明:
比如登录验证的时候:

public void insertAdmin(@Param("username")String username,@Param("password")String password);

此时在运行就不会再报错了。

4.总结

在dao接口方法中的参数前面加@param注解情景:

当只有一个参数时,dao接口的方法中可不用添加注解。Mybatis可成功匹配参数。

当大于一个参数时,dao接口的方法中需要使用注解@Param(“XXX”)为Mybatis指定参数名称。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
mybatis配置时出现org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题
Mapped Statements collection does not contain value for
mybatis一个怪异的问题: Invalid bound statement (not found)
log4j配置打印mybatis sql语句
SpringBoot之Mybatis连接MySQL进行CRUD(注解&配置文件)(简测试版)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服