mybatis foreach批量插入數據:Oracle與MySQL區別
阿新 • • 發佈:2018-01-20
pos blog acl logs name 代碼 each mys ...
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區別