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如何插入表得到主键 useGeneratedKeyskeyPropertykeyColumn ```xml <insert id=“insertEo“ useGeneratedKe(代码