需求:
傳入的參數是list集合,集合裏面是多個實體對象,要將其依次插入到數據庫中
代碼實現:
<insert id="saveBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
insert into TABLE_NAME (NAME, TYPE, ID)
values
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.name},
#{item.type},
#{item.id}
)
</foreach>
</insert>
使用標籤:
foreach
可調標籤屬性:
- collection : list | array | map //目前只試過list
- item : list中每組對象(元素)別名,可隨意自定義
- index : 索引值,可自定義 separator : 拼接每組數據的分隔符,按需求確定,我這插入多個對象,用逗號分隔符
- open : 語句拼接以什麼符號開始,sql語句上的需要,比如我這裏在foreach裏面加了"(",就不需要加這個屬性
- close : 語句拼接以什麼符號結束,sql語句上的需要,比如我這裏在foreach裏面加了")",就不需要加這個屬性
- #{item.name}: 這個item.name, item是自己設置的對象名,name是對象的屬性
轉換成Sql語句:
insert into table_name (id, type, name) values (1, boy, Amy), (2, girl, Ben)