老师参数多的话,如果我不用@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,

0
0

Geely

2018-05-14

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

0
0

polo哦

2018-05-08

参数多反而要用@Param。。

0
1
jojohao
为什么参数多 就要用@param 能说具体点吗
2018-05-09
共1条回复

从0开始 独立完成企业级Java电商网站服务端开发

前后端分离,数据库接口设计,架构设计,功能开发,上线运维

9476 学习 · 8804 问题

查看课程