首页 > 分享 > ORACLE+mybatis+foreach进行批量插入数据的填坑

ORACLE+mybatis+foreach进行批量插入数据的填坑

在进行批量数据操作的时候,

mysql的批量操作与oracle的操作不同,如果直接使用mysql的操作方式,放在oracle操作中,执行的时候,会一致报SQL未正确结束的错误,所有我们要进行分开,进行针对性操作。

关于mysql的操作:

<insert id="batchInsert" parameterType="list">

insert into S_DATUM_PAGE(PAGE_ID,ENTRY_ID,DATUM_ID,CONTENT_LENGTH,

CREATED_TIME,NAME_TIME,IMAGE_FORMAT,PAGE_ORDER,PATH)

VALUES

<foreach collection="list" item="item" separator=";">

(#{item.pageId},#{item.entryId},#{item.datumId},#{item.contentLength},

#{item.createdTime},

#{item.nameTime},#{item.imageFormat},#{item.pageOrder},#{item.path})

</foreach>

</insert>

其中mysql的操作就比较简单,可以进行直接的一对一赋值操作即可,这样就不影响绑定数据的问题

关于oracle的操作:

<insert id="batchInsert" parameterType="list" useGeneratedKeys="false" >

insert into S_DATUM_PAGE

(PAGE_ID,ENTRY_ID,DATUM_ID,CONTENT_LENGTH,CREATED_TIME,NAME_TIME,

IMAGE_FORMAT,PAGE_ORDER,PATH)

<foreach collection="list" item="item" separator="union all">

(SELECT

#{item.entryId},#{item.datumId},#{item.contentLength},#{item.createdTime},

#{item.nameTime},#{item.imageFormat},#{item.pageOrder},#{item.path}

FROM dual)

</foreach>

</insert>

oracle的操作,就比较麻烦一点,需要在数据绑定的部分,借助dual模拟表,进行数据的整理工作,这样的话,才能够正确的进行数据的批量插入工作。

另外值得注意的一点:

就是在oracle操作的时候,一定要注意mybatis的语句中:useGeneratedKeys="false",这个关键词,如果没有这个关键词,仍旧会继续报SQL未正确结束的操作,这个是关闭自动生成key值的一个关键词,我们在语句上,正确的赋值这个词,就能够正确执行了。

有什么问题的话,可以留言交流,如果解决了您的问题的话,也希望能够点赞分享,希望能够帮助到您!!

相关知识

填坑
使用jdbc向数据库插入数据时preparedStatement.executeBatch()报错
宠老板宠物店收银系统,快速录入商品,如何批量导入!
从0到1数据分析实战学习笔记(二)数据清洗
化毛膏。。能不吃就不吃吧(已填坑。。。满地打滚的求表扬。。)
基于CNN+数据增强+残差网络Resnet50的少样本高准确度猫咪种类识别—深度学习算法应用(含全部工程源码)+数据集+模型(二)
Python 数据清洗
宠物险的被保险人怎么填怎么填
使用Tensorflow 2进行猫狗分类识别
机器学习训练中常见的问题和挑战:训练数据的数量不足、训练数据不具代表性、低质量数据、无关特征、过拟合训练数据、欠拟合训练数据

网址: ORACLE+mybatis+foreach进行批量插入数据的填坑 https://m.mcbbbk.com/newsview822413.html

所属分类:萌宠日常
上一篇: HDU 1395(2^x mod
下一篇: 我召唤了整个地球