# 【付费】第15章:返回Insert操作自增索引值
作者:小傅哥
博客:https://bugstack.cn (opens new window)
星球:https://t.zsxq.com/Ja27ujq (opens new window)
沉淀、分享、成长,让自己和他人都能有所收获!😄
# 零、优秀作业
- 在解析INSERT SELECT UPDATE DELETE标签的时候进行生产 @Liuliuliu (opens new window)
- 执行insert操作后,返回该插入语句的自增索引值(即主键) @liuc (opens new window)
# 一、前言
技术的把控,往往都是体现在细节上!
如果说能用行,复制粘贴就能完成需求,出错了就手忙脚乱。那你一定不是一个高级开发,对很多的技术细节也都不了解。
当我们在使用技术语言、技术组件、技术框架时,如果不能清楚的知道核心常用的设计原理,往往在遇到问题的时候也很难定位原因。就像本章节要实现的插入数据后返回索引值,如果不清楚的了解这是两条 SQL 在同一个 DB 链接下,保证事务特征的情况下,才能给你返回正确的索引自增值。
那么类似这样的技术细节点,因为不清楚每一个步骤的核心过程,如果真的出错了,你是没法排查到的。所以我们在学习技术的时候,不用贪多,而应该贪心在细和精上。
# 二、目标
在前面所有的章节内容对 ORM 框架的实现中,其中对 SQL 的 insert/delete/update/select 操作都是一条执行语句。
那这样有什么问题吗?这里到没有什么问题,主要的特征在于与本章节要实现的内容上想对照来看,本章节要实现的是在执行插入 SQL 后要返回此条插入语句后的自增索引。如图 15-1 所示 Mapper XML Insert 配置
当一次数据库操作有2条执行 SQL 语句的时候,重点在于必须在同一个 DB 连接下,否则将会失去事务的特性。也就表示着,如果不是同一 DB 连接下,那么返回的自增ID将会是一个 0 值。
那么这也就是我们本章节所需要完成的目标,在解析 Mapper 配置文件以后,调用预处理语句处理器执行 SQL 时,需要在同一个链接下进行处理。