跟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,我们新增三条,正确
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端