前言:
在開發中,我們可能很多的時候可能需要在新增時得到剛才新增的id,后續的邏輯需要用到這個id。
在插入單條記錄的情況下,這個是很簡單的問題。多條記錄時有個坑在里面。
單條記錄的代碼如下
<insert id="add" useGeneratedKeys="true" keyProperty="id">
insert into person
(
name,
age
) values
(
#{name},
#{age}
)
</insert>
這樣插入完后,在person類中id就可以得到剛才最新插入的值了。
多條記錄的代碼如下
<insert id="adds" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
insert into person
(
name,
age
) values
<foreach collection="list" item="item" separator=",">
(
#{item.name},
#{item.age}
)
</foreach>
</insert>
首先這樣的寫法是對的,好多的地方也是這樣寫的。
我當初也是這樣寫的,但一直不行,最后找了好長時間的資料才發現,是mybatis的版本的問題。
最開始的時候用的是3.2.8的版本,但是這個需要至少升級到3.3.1版本才能支持。