標籤:adr log ram union 設定 test 分割 col int
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>
mybatis foreach批量插入資料:Oracle與MySQL區別