当前位置: 首页 > news >正文

ORACLE使用Mybatis-plus批量插入

ORACLE使用mybatis-plus自带的iservice.saveBatch方法时,会报DML Returing cannot be batch错误:

推测原因是oracle不支持insert into table_name (,) values (,),()的写法。且oracle不会自动生成自增ID。

解决方案:

1)创建oracle序列号,用于生成自增主键

CREATE SEQUENCE SYS_ROLE_PERMISSION_SEQ INCREMENT BY 1 MINVALUE 1 MAXVALUE 9999999999999999999999999999 NOCYCLE CACHE 20 NOORDER 

2)创建触发器,在数据插入时,自动增加主键

CREATE OR REPLACE trigger ID_INCREAMENT
before insert on SYS_USER_ROLE
for each row
beginselect "SYS_USER_ROLE_SEQ"."NEXTVAL" into :new.id from dual;
end;

3)手动定义mapper,批量插入

 <insert id="batchInsert" parameterType="java.util.List">INSERT ALL<foreach collection="sysUserRoles" item = "item" separator=" "close="SELECT * FROM dual" index="index">INTO SYS_USER_ROLE (USER_ID, ROLE_ID) values (#{item.userId}, #{item.roleId})</foreach></insert>

相关文章:

  • 12月12日作业
  • 2024年AI云计算专题研究报告:智算带来的变化
  • 黑客应该从小抓起
  • linux 中crontab 定时任务计划创建时间文件夹示例
  • C语言leetcode集训一:数组
  • Centos7、Mysql8.0 load_file函数返回为空的终极解决方法--暨selinux的深入理解
  • AI工具导航网站(包含写作、翻译、设计、论文润色去重的AI工具集)
  • Command ‘npm‘ not found, but can be installed with:sudo apt install npm 解决方案
  • Ubuntu22.04中用户的全名
  • RabbitMQ使用指南
  • C++学习笔记—— C++内存管理方式:new和delete操作符进行动态内存管理
  • Java解决二进制矩阵中特殊位置问题
  • 101基于matlab的极限学习机ELM算法进行遥感图像分类
  • YOLO_embedded: YOLO算法快速嵌入式部署
  • QT 重定向qdebug输出到自绘界面
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • @angular/forms 源码解析之双向绑定
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • Android Volley源码解析
  • exports和module.exports
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • java8-模拟hadoop
  • JavaScript的使用你知道几种?(上)
  • Java应用性能调优
  • Making An Indicator With Pure CSS
  • Material Design
  • node和express搭建代理服务器(源码)
  • SSH 免密登录
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 从0到1:PostCSS 插件开发最佳实践
  • 番外篇1:在Windows环境下安装JDK
  • 三栏布局总结
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 交换综合实验一
  • ​HTTP与HTTPS:网络通信的安全卫士
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • #mysql 8.0 踩坑日记
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (翻译)terry crowley: 写给程序员
  • (接口封装)
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • **python多态
  • .apk 成为历史!
  • .chm格式文件如何阅读
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .net 受管制代码
  • .net/c# memcached 获取所有缓存键(keys)
  • .net反编译的九款神器
  • .NET值类型变量“活”在哪?
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • @vue/cli 3.x+引入jQuery
  • [ C++ ] STL---仿函数与priority_queue
  • [Android]How to use FFmpeg to decode Android f...