MyBatis:<selectKey> #keyProperty、keyColumn、order
資料庫表中有一個自增長欄位為id,如何在插入記錄之後獲得這個id值呢?
比如:
insert into user(username,address,sex,birthday) values(#{username},#{address},#{sex},#{birthday})
執行完後,我們去看資料庫,發現多了一條記錄:
問題:看了資料庫後我們知道自動生成的id是11,如果不看資料庫,能不能知道這個id呢?
selectKey 就能解決這個問題!
示例如下:
<insert id="saveUser" parameterType="com.aimin.domain.User">
<selectKey keyProperty="id" keyColumn="id" resultType="int" order="AFTER">
select last_insert_id();
</selectKey>
insert into user(username,address,sex,birthday) values(#{username},#{address},#{sex},#{birthday})
</insert>
說明:
1、keyColumn:資料表中那個自增長的id欄位名稱
2、keyProperty:資料表的欄位和實體類的屬性是對應的,在實體類中對應的屬性就是keyProperty
3、order:本標籤內的語句(這裡是 select last_insert_id() )是先執行還是後執行
這裡order="AFTER", 先執行 insert into user(username,address,sex,birthday) values(#{username},#{address},#{sex},#{birthday}) 後執行select last_insert_id()