在学习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>