Parameter 'xxx' not found. Available parameters are [arg1, arg0, param1, param2]
2021/8/3 23:37:11
本文主要是介绍Parameter 'xxx' not found. Available parameters are [arg1, arg0, param1, param2],对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
问题:
org.mybatis.spring.MyBatisSystemException:nested exception is org.apache.ibatis.binding.BindingException: Parameter 'xxx' not found. Available parameters are [arg1, arg0, param1, param2]
原因:
这个问题是因为我们在Mapper接口中声明方法的时候有多个参数,例如:
Mapper接口中方法:
int selectUser(String pid,String pname);
然后在mapper.xml配置如下:
<select id="selectUser" resultType="xxx.xxx.xxx.model.User">
select *
from user
where id = #{pid} and name = #{pname}
</select>
这样直接用pid,pname就会报错的。
解决方法:
这里使用@Param注解,这种方式Mybatis就会自动将参数封装成Map类型,@Param注解的值会作为Map中的key,例如:
Mapper接口中:
int selectUser(@Param("pid")String pid,@Param("pn")String pname);
mapper.xml中:
<select id="selectUser" resultType="xxx.xxx.xxx.model.User">
select *
from user
where id = #{pid} and name = #{pn}
</select>
这里注意一下:
@Param(“pn”) String pname,@Param里面的定义的名称(即pn)可以和参数名(即pname)不一致。在xml中的SQL 语句是以“pn”作为key的。也就是说在使用时是 name = #{pn},而不是 name = #{pname}了。
这篇关于Parameter 'xxx' not found. Available parameters are [arg1, arg0, param1, param2]的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-20实战:30 行代码做一个网页端的 AI 聊天助手
- 2024-11-185分钟搞懂大模型的重复惩罚后处理
- 2024-11-18基于Ollama和pgai的个人知识助手项目:用Postgres和向量扩展打造智能数据库
- 2024-11-15我用同一个提示测试了4款AI工具,看看谁设计的界面更棒
- 2024-11-15深度学习面试的时候,如何回答1x1卷积的作用
- 2024-11-15检索增强生成即服务:开发者的得力新帮手
- 2024-11-15技术与传统:人工智能时代的最后一袭纱丽
- 2024-11-15未结构化数据不仅仅是给嵌入用的:利用隐藏结构提升检索性能
- 2024-11-15Emotion项目实战:新手入门教程
- 2024-11-157 个开源库助你构建增强检索生成(RAG)、代理和 AI 搜索