Mybatis:selectKey标签

在学习SSM框架之前的我在做项目的时候,总是在惆怅在多表级联添加的时候,怎么在主表插入完成后获取到其PK的值然后作为第二张表的PK来插入。

当时,我只能写成两个方法,做两次的数据库操作,显然这非常的蠢且繁琐,但是当时啥也不会,只能勤劳地打了几十行的代码,就为了实现这么一个操作。


学习mybatis,select Key之后……

对应的几个必要的参数↓

属性名 使用方式
keyProperty 对应应该被设置的目标属性
resultType 该属性的类型
order 下面详细演示

当order="before"时,那么会先生成主键,如下2、3图,可以直接拿到,然后再执行插入语句。

<!-- 插入数据 -->
<insert id="insertStudent" parameterType="net.dfrz.entity.Student">
	<selectKey keyProperty="stuID" resultType="String" order="BEFORE">
		select replace(uuid(),"-","")
	</selectKey>
	insert into t_student(stuID,name,birthday,sex) values(#{stuID},#{name},#{birthday},#{sex})
</insert>

在这里插入图片描述
在这里插入图片描述

所以,当为after的时候,一般情况下就时再insert之后,再取得ID,一般出现在PK时AutoIncrease的情况下,你必须插入后才能拿到对应的PK值。

发布了53 篇原创文章 · 获赞 0 · 访问量 4148

猜你喜欢

转载自blog.csdn.net/qq_36453423/article/details/103558752
今日推荐