MyBatis参数名的解释

总的来说你在写mapper的时候多参数的时候无所谓,单参数的时候必须要使用@Param来给参数取别名。

解释来源于牛客项目课:
关于MyBatis参数名的解释:
在mybatis的配置里,默认情况下,是启用自然参数名的,如下图:
图片说明
也就是说,你无需加@Param注解,它默认就按照参数名与表达式匹配。如果你加了@Param注解,那么就会覆盖掉这个参数名。
在对参数名称处理的层面,mybatis有2种机制,如下图
图片说明
1是自然参数名,2是自动生成的参数名。mybatis会按照参数的顺序,给每个参数生成一个名字,分别是param1, param2 ...,所以在表达式里,你使用 或者 都能访问到这个参数。mybatis的官方手册,对这方面介绍的比较笼统,不够详尽。大家可以跟踪源码,看一下它底层实际的逻辑。
以上,是针对多个参数的情况。你的方法有多个参数时,mybatis会创建一个Map来封装这些参数,Map的key就是自然参数名,以及生成的参数名,都有。如果你的方法只有一个参数,它就不创建Map,而是直接获取这个参数的值,来替换sql中唯一的表达式,此时它不关注你的参数是什么名字,也不会使用这个名字。

全部评论

相关推荐

门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
今天 11:42
江西农业大学 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务