ibatis.binding.BindingException: Parameter ‘XX‘ not found. Available parameters are [arg0, param1]

两种解决办法:
(1)在mapper接口中使用@param
List temp = cardService.queryRepeat(@param(“type”) String type,@param(“shop”) String shop);
(2)在mapper.xml文件中使用arg0,arg1参数
< select id=“queryRepeat” parameterType=“String” resultType=“Card”>
select * from card where card_type=#{arg0} and shop=#{arg1}
< /select >
原因:
#1楼 2019-02-27 15:30 起个名特麻烦+
错误原因更具体点是因为:mybatis从3.4.1开始支持java 8 的反射获取入参名了,所以入参不再是arg0,arg1了,不过仍然可以使用param1,param2的这种形式,在java8 编译时指定 -parameters 选项,可以直接使用#{username} #{password},而不用改变你的接口入参
参考mybatis3.4.1更新日志:https://github.com/mybatis/mybatis-3/releases/tag/mybatis-3.4.1
具体改进有一条如下:
Allow referencing parameters by their declared names when compiled with Java 8 -parameters option. #549

我在开发中也遇到了此问题,是因为我直接将mybatis升级到了3.5.0,并且springboot gradle 插件在build打包会默认开启 -parameters

源引:
1)https://blog.csdn.net/cm15835106905/article/details/107977196
2)https://www.cnblogs.com/chenxiaoxu/p/9365117.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值