mybatis foreach批量插入數據:Oracle與MySQL不同點: 主要不同點在於foreach標簽內separator屬性的設置問題: 1. separator設置為","分割時,最終拼接的代碼形式為:insert into table_name (a,b,c) values (v1,v ...
mybatis foreach批量插入數據:Oracle與MySQL不同點:
- 主要不同點在於foreach標簽內separator屬性的設置問題:
- separator設置為","分割時,最終拼接的代碼形式為:insert into table_name (a,b,c) values (v1,v2,v3) ,(v4,v5,v6) ,...
- separator設置為"union all"分割時,最終拼接的代碼形式為:insert into table_name (a,b,c) values (v1,v2,v3) union all (v4,v5,v6) union all...
- 詳情請見示例代碼:
Oracle:
<insert id="inserData" parameterType="com.test.aaa.Bac">
insert into table_name (name, adress, age)
values
<foreach collection="list" item="item" index="index" separator="union all">
(select #{item.name},
#{item.adress},
#{item.age}
from dual )
<foreach>
</insert>
MySQL:
<insert id="inserData" parameterType="com.test.aaa.Bac">
insert into table_name (name, adress, age)
values
<foreach collection="list" item="item" index="index" separator=",">
( #{item.name}, #{item.adress}, #{item.age} )
<foreach>
</insert>