mybatis中批量添加orcale

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


SQL:

1、

begin
insert into emp(emp_id,name,email) 
values(1000,'李白','[email protected]');
insert into emp(emp_id,name,email) 
values(1001,'李二白','[email protected]');
end;

2、

insert into emp(emp_id,name,email) 
select emp_id,name,email from(
select 1000 emp_id ,'李白' name,'[email protected]' email from dual
union
select 1001 emp_id ,'李二白' name,'[email protected]' 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>

猜你喜欢

转载自www.cnblogs.com/tdyang/p/12747703.html