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值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章