程序员必修课:MyBatis主键回填全攻略,看完不再踩坑!

一场不期而遇的面试杀局

故事要从我那位程序员朋友老杜讲起。

那天,他刚面完一家中型互联网公司,跟我在楼下的奶茶店见面,手里还拎着一杯没喝几口的多肉葡萄,坐下就开始诉苦:“小米啊,MyBatis 的主键回填,面试官怎么能问得这么细?”

我好奇地挑了挑眉:“就主键那点事,问出花来了吗?”

“花不花我不知道,反正我答得是稀碎。”老杜一脸郁闷,“我以为 useGeneratedKeys=true 就完事了,结果他让我说出几种方式,还要说出适用场景,还要知道什么数据库支持……”

我一听,这不正好就是你找我喝奶茶的理由吗?于是,我轻轻掀起奶茶盖,一边搅拌冰块,一边给他讲起了“主键回填”的那些事儿。

主键回填,到底是什么?

在说“怎么获取”之前,我们得搞清楚“为什么要获取”。

在我们插入一条数据,比如一条用户记录时,往往这个用户的主键 ID 是数据库自动生成的(通常是自增的)。这时候,我们插完数据之后,业务层还得用这个主键去干点别的事,比如:

  • 插完用户,还得插他的角色,需要用这个用户 ID;
  • 插完订单,还得插订单明细;
  • 插完文章,还得记录日志。

所以我们必须得知道:刚才插入的那条数据的主键,到底是个啥?

这就到了 MyBatis 回填主键 的核心问题。

方法一:useGeneratedKeys + keyProperty(推荐用法)

这是最常见、最“自动化”的方式,配置简单,效率也高。

只需要在 insert 标签里加上:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

软件求生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值