MyBatis传参原来还有这么多门道,90%程序员都只知道一种!

前段时间换工作,我去了一家中型互联网公司面试Java开发。技术面上来就是一通熟悉的问题,Spring、Redis、线程池,我答得如鱼得水。轮到MyBatis,我信心满满,毕竟项目里天天用。

结果,面试官看着我说:“那我问个简单点的吧——在Mapper中,如何传递多个参数?”

当时我还在想,这还不简单?用逗号传呗!但我话到嘴边又卡住了——等等,MyBatis的Mapper接口里,方法参数能随便传多个吗?

于是,我硬着头皮答:“我用Map传的……”

面试官点头,又接着问:

“除了Map,你还用过什么方式?@Param你用过吗?那多个参数不用注解的时候,你知道默认怎么传进去的吗?”

就这样,三个问题连珠炮,我脸上写满了‘别问了,我回去查一下’。

回去之后,我立刻翻源码、看官网、写 demo,才把这个“基础问题”吃透。今天就来跟大家完整讲讲 MyBatis 中传多个参数的方式,顺带结合源码看看 MyBatis 的底层是怎么处理这些参数的。

面试官问的“多个参数”到底是哪种情况?

先回顾一下背景。在 MyBatis 中,我们通常会写一个 Mapper 接口,比如这样:

问题就来了:MyBatis 的 XML 映射文件里,只能通过 #{} 或 ${} 获取参数,而方法参数是多个,怎么取?

这就是我们今天要深入的点。

使用 @Param 注解

这是最标准、最推荐的方式!MyBatis 提供了 @Param 注解,可以为每个参数起一个别名。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软件求生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值