<insert id="insert_table " parameterclass="java.util.list">
insert all
<iterate conjunction="">
into sj_test( col1 , col2 , col3 ) values
(#test[]. col1 #, # test []. col2 #, # test []. col3 #)
</iterate>
<!--必须要加上 -->
select * from dual
</insert>
这种方式,oracle支持,其他的数据库就不知道支不支持,但是这种方式有个局限性,就是你插入的表的列数* 你插入的行数 <1000 才有效
如:
我今天需要插入的表有13列字段,总共需要插入246行,在执行的时候
他就报:ora-24335 cannot support more than 1000 columns 第三种方式
<insert id="insert_table" parameterclass="java.util.list">
insert into sj_test( col1 , col2 , col3 ) values select
col1 , col2 , col3
from (
<iterate conjunction=" union all ">
select
#test[].col1# as col1 , #test []. col2# as col2, # test[].col3# as col3 from dual
</iterate>
)
</insert>