MyBatis中parameterType的错误使用情况

我知道,如果mapper的接口中使用一个参数的情况下,可以使用parameterType进行接受参数类型的指定,现在mapper.xml中的内容如下:


parameterType可以接受简单的类型,也可以接受复杂来行,如map,自定义pojo等等,但是看看上面的代码并没有什么问题,不过也确实没有什么问题,再来看看mapper对应的接口类:


 貌似也没什么问题,因为Long型在service中方便判断是否是空等情况,所以我也没有在意,就这样一直用下来了,然后就悲剧了,报错信息如下:


看到这个报错界面我瞬间蒙了,不是说简单类型的可以这样使用吗,直接用parameterType,报这个错误的意思明显是将Long当作了一个pojo对象来处理了,思前想后的找不到答案那,还把之前的学习资料翻出来看,也没问题啊,是简单类型啊。。。简直是要疯的感觉,然后突然发现,之前的示例中,接口中的类型使用的是,int,long之类的,而不是Integer,Long,抱着试一试的心态做了如下修改:


将这里改为了long了,再次查看结果:


可以看到,错误信息变成了,找不到这个方法了,还是纳闷啊,命名有这个方法啊,但是参数有问题,是Long型的,但是我这里接口是long的,所以查看一下调用的代码:


很明显,这里面传入的是Long型的,问题肯定是出在这里了,所以把这里的Long型改为了long,如图:


修改之后还是不行

所以,还是使用@Param注解,之后就解决了,或者像网上说的使用

_parameter

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值