MyBatis应用记录:MyBatis如何得到插入数据之后的主键值

Posted 古兰精

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis应用记录:MyBatis如何得到插入数据之后的主键值相关的知识,希望对你有一定的参考价值。

一、MyBatis如何得到插入数据之后的主键值

1、第一种:数据库设置主键自增机制。

  userMapper.xml 文件中定义:

  <!-- 向 user 表插入一条数据 -->
    <insert id="insertUser" parameterType="com.ys.po.User">
        <!-- 将插入的数据主键返回到 user 对象中
             keyProperty:将查询到的主键设置到parameterType 指定到对象的那个属性
             select LAST_INSERT_ID():查询上一次执行insert 操作返回的主键id值,只适用于自增主键
             resultType:指定 select LAST_INSERT_ID() 的结果类型
             order:AFTER,相对于 select LAST_INSERT_ID()操作的顺序
         -->
        <selectKey keyProperty="id" resultType="int" order="AFTER">
            select LAST_INSERT_ID()
        </selectKey>
        insert into user(username,sex,birthday,address)
            value(#{username},#{sex},#{birthday},#{address})
    </insert>

2、第二种:非自增主键机制

  <!-- 向 user 表插入一条数据 -->
    <insert id="insertUser" parameterType="com.ys.po.User">
        <!-- 将插入的数据主键返回到 user 对象中
        流程是:首先通过 select UUID()得到主键值,然后设置到 user 对象的id中,在进行 insert 操作
             keyProperty:将查询到的主键设置到parameterType 指定到对象的那个属性
             select UUID():得到主键的id值,注意这里是字符串
             resultType:指定 select UUID() 的结果类型
             order:BEFORE,相对于 select UUID()操作的顺序
         -->
        <selectKey keyProperty="id" resultType="String" order="BEFORE">
            select UUID()
        </selectKey>
        insert into user(id,username,sex,birthday,address)
            value(#{id},#{username},#{sex},#{birthday},#{address})
    </insert>

 

以上是关于MyBatis应用记录:MyBatis如何得到插入数据之后的主键值的主要内容,如果未能解决你的问题,请参考以下文章

mybatis如何获取oracle新插入数据记录的主键?

Mybatis返回插入的主键

MyBatis中批量插入数据对插入记录数的限制

mybatis如何插入表得到主键 useGeneratedKeyskeyPropertykeyColumn ```xml <insert id=“insertEo“ useGeneratedKe(代码

MyBatis基于注解数据库插入记录后返回自增编号

mybatis insertupdate delete默认返回值解释与如何设置返回表主键