老师参数多的话,如果我不用@Param不也一样吗
来源:6-5 忘记密码中的重置密码功能开发
jojohao
2018-05-08
写回答
3回答
-
Queen丶Star
2018-08-01
@Param 是Mybatis提供的,提供的原因,我可以从2点去误导你- -
第一,java并没有传形参值的能力, 所有你定义的变量,在java中传递时都是以arg1,arg2,arg3这种形式传递的,mybatis无法辨别哪个值时哪个值,编译没问题,但是运行的时候,匹配不了对应值,会出错或者没有结果。
第二,mybatis的sqlSession 执行crud方法时候,只允许带入一个参数值,对于多参数的方法,需要把所有的参数单独包装一下,封装成一个类,然后在传递给Mybatis,这也是为什么多个参数值的时候,带入的参数值类型时map,
00 -
Geely
2018-05-14
这个要看mybatis的源码啦,源码通过这个注解来进行多参数绑定。一句两句还说不清,建议同学查找一下mybatis源码关于多个数据参数绑定的源码解析。赞同学思考
00 -
polo哦
2018-05-08
参数多反而要用@Param。。
012018-05-09
相似问题