平常用mysql比较多,oracle少点。之前个人觉得mysql 和 oracle 很多语法层面的东西很相似,但是还是有一些细微差别,比如一些函数上的差异。
mysql批量插入
<insert id="batchUserRole">
insert into sys_user_role(user_id, role_id) values
<foreach item="item" index="index" collection="list" separator=",">
(#{item.userId},#{item.roleId})
</foreach>
</insert>
oracle批量插入
第一种
<insert id="save" >
insert into table (ID,NAME,UPDATE_TIME)
<foreach close=")" collection="list" item="item" open="(" separator="union all">
select
#{item.ID,jdbcType=VARCHAR},
#{item.NAME,jdbcType=VARCHAR},
#{item.UPDATE_TIME,jdbcType=TIMESTAMP}
from dual
</foreach>
第二种 利用存储过程实现批量插入
<insert id="insertBatchEntity" parameterType="java.util.List" >
begin
<foreach collection="list" item="item" index="index" separator=";">
INSERT INTO MY_TABLE
( ID,XXX)
VALUES
( #{item.id}, #{item.XXX})
</foreach>
;end;
</insert>