请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

3回答

Queen丶Star 2018-08-01 17:00:03

@Param 是Mybatis提供的,提供的原因,我可以从2点去误导你- - 

第一,java并没有传形参值的能力, 所有你定义的变量,在java中传递时都是以arg1,arg2,arg3这种形式传递的,mybatis无法辨别哪个值时哪个值,编译没问题,但是运行的时候,匹配不了对应值,会出错或者没有结果。

第二,mybatis的sqlSession 执行crud方法时候,只允许带入一个参数值,对于多参数的方法,需要把所有的参数单独包装一下,封装成一个类,然后在传递给Mybatis,这也是为什么多个参数值的时候,带入的参数值类型时map,

0 回复 有任何疑惑可以回复我~
Geely 2018-05-14 15:03:57

这个要看mybatis的源码啦,源码通过这个注解来进行多参数绑定。一句两句还说不清,建议同学查找一下mybatis源码关于多个数据参数绑定的源码解析。赞同学思考

0 回复 有任何疑惑可以回复我~
polo哦 2018-05-08 20:12:32

参数多反而要用@Param。。

0 回复 有任何疑惑可以回复我~
  • 提问者 jojohao #1
    为什么参数多 就要用@param 能说具体点吗
    回复 有任何疑惑可以回复我~ 2018-05-09 10:13:31
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信