1. 程式人生 > 其它 >MyBatis:<selectKey> #keyProperty、keyColumn、order

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()