跟mybatis配置 mybatis.configuration.default-executor-type 的设置没有关系!!!
1、oracle批量插入的语法跟mysql不同,oracler的语法,如插入三条数据:
insert into table(k1,k2,k3)
select v1,v2,v3 from dual
union
select v1,v2,v3 from dual
union
select v1,v2,v3 from dual
2、找个表测试在数据库实际运行

可以看到sql语句执行成功,并且返回受影响的行数为3行。
3、在mybatis里面批量插入的写法
<insert id="insertBatch" parameterType="java.util.List"> INSERT INTO tinv_uploadreceipt ( id, receiptstate, receiptime, remark, receipuserid, createuserid, modifyuserid, taskid, logistics, logisticscode ) <foreach collection="list" item="item" index="index" separator="union"> select FC_GetID ( 'TINV_UPLOADRECEIPTID', 1, 1 ), <!-- 这里是主键自增长 --> 1, SYSDATE, '', '24681', '24681', '24681', #{item.customerRemark}, #{item.logistics}, #{item.logisticsCode} from dual </foreach> </insert>
接口Mapper方法,请求参数为List<Map>,返回类型为int是要返回受影响的条数
int insertBatch(@Param("list") List<Map<String,Object>> list);
4、调用实验,启动项目,并且在Service里面调用Mapper的方法
请求参数
[
{
"customerRemark": "1",
"logistics": "1",
"logisticsCode": "1"
},
{
"customerRemark": "2",
"logistics": "2",
"logisticsCode": "2"
},
{
"customerRemark": "3",
"logistics": "3",
"logisticsCode": "3"
}
]
debug在Service看返回值,发现i为3,我们新增三条,正确
