Mybatis 插入insert操作时获取主键

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis 插入insert操作时获取主键相关的知识,希望对你有一定的参考价值。

    对于自增主键的表,插入可以不配置插入的主键列。否则是必须的。
 获取主键 
     插入语句之前配置:主要是针对Sequence主键而言,插入前必须指定一个主键值给要插入的记录。Oracle、DB2亦如此,方法是在插入语句标签<insert....>之前配置上:    

<insert id="AltName.insert" parameterType="AltName">
<selectKey resultType="long" keyProperty="id">
SELECT SEQ_TEST.NEXTVAL FROM DUAL
</selectKey>
insert into
altname(primaryName,alternateName,type)values(#{primaryName},#{alternateName},#{type})
</insert>

    插入语句之后配置:蛀牙是针对自增主键的表而言,这类表在插入时不需要主键,而是在插入过程自动获取一个自增的主键。比如mysql 
     <insert id="AltName.insert" parameterType="AltName">
<selectKey resultType="long" keyProperty="id">
SELECT LAST_INSERT_ID()
</selectKey>
insert into
altname(primaryName,alternateName,type)values(#{primaryName},#{alternateName},#{type})
</insert>

 

 当然,是否需要配置<selectKey>根据情况,只要能保证记录有主键即可。一旦配置了<selectKey>,就可以在执行插入操作时获取到新增记录的主键。 
   注意:如果没有配置<selectKey>那么保存后的对象的主键依旧为null.




















以上是关于Mybatis 插入insert操作时获取主键的主要内容,如果未能解决你的问题,请参考以下文章

mybatis插入操作时,返回自增主键id

Mybatis 怎么返回insert插入的主键

Mybatis返回插入的主键

mybatis批量插入,怎么返回生成的自增主键

mybatis 插入数据 在没有commit时 获取主键id

mybatis 批量插入 怎么获取刚刚插入的数据的id集合