MyBatis参数名的解释

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

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

全部评论

相关推荐

2024-11-19 23:36
未填写教育信息 Java
废铁汽车人:秋招真是牛鬼蛇神齐聚一堂
点赞 评论 收藏
分享
2024-11-15 17:19
湖南大学 Java
成果成果成果果:这是哪个公司的hr,这么离谱吗,我没见过用性别卡技术岗的,身边女性同学拿大厂offer的比比皆是
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务