在學習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>