mybatis中批量添加orcale

Oracle数据库批量保存, Oracle不支持values(),(),()


SQL:

1、

begin
insert into emp(emp_id,name,email) 
values(1000,'李白','11@11.com');
insert into emp(emp_id,name,email) 
values(1001,'李二白','22@22.com');
end;

 

2、

insert into emp(emp_id,name,email) 
select emp_id,name,email from(
select 1000 emp_id ,'李白' name,'11@11.com' email from dual
union
select 1001 emp_id ,'李二白' name,'t22@22.com' email from dual
)    

 

xml:

collection:指定要遍历的集合:
item:将当前遍历出的元素赋值给指定的变量
separator:每个元素之间的分隔符
open:遍历出所有结果拼接一个开始的字符
close:遍历出所有结果拼接一个结束的字符

<!-- oracle第一种批量方式 -->
<insert id="addEmps">
<foreach collection="emps" item="emp" open="begin" close="end;">
  insert into emp(emp_id,name,email) 
  values(#{emp.emp_id},#{emp.name},#{emp.email});
</foreach>
<insert>

 

<!-- oracle第二种批量方式 -->
<insert id="addEmps">
insert into emp(emp_id,name,email) 
<foreach collection="emps" item="emp" separator="union" open="select emp_id,name,email from(" close=")">
    select  #{emp.emp_id}  emp_id ,#{emp.name} name,#{emp.email} emai from dual
</foreach>
</insert>
posted @ 2020-04-21 21:35  来一杯可乐  阅读(166)  评论(0编辑  收藏  举报