【注意】触发这种报错有两种情况:

  • 报错信息展示:
    • 情况一:
    • 情况二:
  • 项目背景:
  • 报错还原:
    • 情况一:
    • 情况二:
  • 报错原因:
    • 情况一:
    • 情况二:
  • 解决方案:
    • 情况一:
    • 情况二:

我立志做一名把细节都说清楚的博主,欢迎关注🎉 ~
原创不易,有帮助还请鼓励个【赞】哦,谢谢无敌可爱帅气又迷人的小哥哥、小姐姐,爱你哦 ❥(^_-)~

报错信息展示:

情况一:

org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: org.apache.ibatis.binding.BindingException: Parameter 'XXXX' not found. Available parameters are [arg2, arg1, arg0, param3, param1, param2]
### Cause: org.apache.ibatis.binding.BindingException: Parameter 'XXXX' not found. Available parameters are [arg2, arg1, arg0, param3, param1, param2]

情况二:

org.apache.ibatis.exceptions.PersistenceException: 
### Error updating database.  Cause: org.apache.ibatis.binding.BindingException: Parameter 'XXXX' not found. Available parameters are [product, param1]
### The error may exist in mapper/ProductMapper.xml
### The error may involve com.example1.example2.dao.ProductMapper.updateProduct
### The error occurred while executing an update
### Cause: org.apache.ibatis.binding.BindingException: Parameter 'XXXX' not found. Available parameters are [product, param1]

项目背景:

  • SSM项目

报错还原:

情况一:

// 错误示范:该方法需要传参3个,但没有使用@Param注解。
List<Product> selectAllProduct(Product productCondition,
							   int beginIndex,
							   int pageSize);

情况二:

// 错误示范:该方法需要的参数仅有1个,但任然使用@Param注解。
int updateProduct(@Param("product") Product product);

报错原因:

情况一:

  • 项目DAO层方法传输参数达到2个及2个以上,程序无法分辨所对应的参数,从而发生报错。

情况二:

  • 仅需一个传参,也使用@Param注解而报错。

解决方案:

情况一:

  • 每一个需要传参的参数加上@Param注解
// 正确示范:该方法需要传参3个,但没有使用@Param注解。
List<Product> selectAllProduct(@Param("productCondition") Product productCondition,
                               @Param("beginIndex") int beginIndex,
                               @Param("pageSize") int pageSize);

情况二:

  • 仅有一个需要传参的参数去除@Param注解
// 正确示范:该方法需要的参数仅有1个,无需使用@Param注解。
int updateProduct(Product product);

我立志做一名把细节都说清楚的博主,欢迎关注🎉 ~
原创不易,有帮助还请鼓励个【赞】哦,谢谢无敌可爱帅气又迷人的小哥哥、小姐姐,爱你哦 ❥(^_-)~

更多推荐

【报错解决】Parameter ‘XXXX‘ not found. Available parameters are [XXXX1, XXXX2]