Mybatis中发生Parameter xx not found. Available parameters are [arg1, arg0, param1, param] 错误可能的情况

本文介绍了在Mybatis中遇到'Parameter xx not found. Available parameters are [arg1, arg0, param1, param]'错误的原因及解决方法。问题源于传入参数类型为Integer,但SQL映射文件中使用了实体属性名,导致编译器无法识别。解决方法是将参数替换为#{arg0}和#{arg1}。此外,还讨论了当参数类型为实体类或基本类型时的占位符使用规则。" 107752830,8724077,迷宫求解与最短路径:BFS与传送阵,"['算法', '图论', '搜索算法', '数据结构']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

Parameter xx not found. Available parameters are [arg1, arg0, param1, param] 的一种原因

解决方法:

引申:



Parameter xx not found. Available parameters are [arg1, arg0, param1, param] 的可能情况

当我们向中间表(s_o)中插入一条属性:

 

 我的接口方法中定义的参数为上图两个,其中nid为students中的idi为objects中的id

那么此时我们应该如何编写sql语句呢?

如果你这么书写,是错误的,会报   Parameter  nid  not found. Available parameters are [arg1, arg0, param1, param2]  错误。

因为我们此时传入的参数类型为Integer类型,而Integer类中并没有 nid 与 i 这个属性,所以编辑器找不到nid这个属性,就会报错了。

解决方法:

 将 nid 替换为 arg0 arg1

此时就不会报错了。

引申:

当你的参数类型为实体类型时,可以使用  #{实体属性名} 。

当你的参数类型为基本类型时,如(Integer,String ,Boolean 等),使用 #{arg0},#{arg1}……

当你的方法拥有多种参数时,parameterType属性也可以不写(其实基本上都可以不写)

如果本文有帮助,可以点个赞支持以下喽

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值