博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis中使用Oracle和mysql的批量插入区别
阅读量:4186 次
发布时间:2019-05-26

本文共 1637 字,大约阅读时间需要 5 分钟。

 在做excel导入的时候需要用到批量导入,以前没用过oracle数据库,使用过程中才发现mysql的写法在oracle中是不正确的。

 先介绍下foreach 中属性的表达意思:

1、 collection :collection属性的值有三个分别是list、array、map三种,分别对应的参数类型为:List、数组、map集合。

2、item : 表示在迭代过程中每一个元素的别名。

3、index :表示在迭代过程中每次迭代到的位置

4、open :前缀

5、close :后缀

6、separator :分隔符,表示迭代时每个元素之间以什么分隔

先上一下mybatis中foreach的代码:

INSERT INTO mds_quota_detail( id, mds_quota_id, serial, mds_item_id, item_code, item_name, normal_field, model_num, specs, quota, mds_unit_id, classify, remarks ) VALUES
( #{id}, #{mdsQuotaId}, #{serial}, #{itemId}, #{itemCode}, #{itemName}, #{normalField}, #{modelNum}, #{specs}, #{quota}, #{mdsUnitId}, #{classify}, #{remarks} )

oracle中foreach的代码:

INSERT INTO mds_quota_detail( id, mds_quota_id, serial, mds_item_id, item_code, item_name, normal_field, model_num, specs, quota, mds_unit_id, classify, remarks )
( SELECT #{MdsQuotaDetail.id}, #{MdsQuotaDetail.mdsQuotaId}, #{MdsQuotaDetail.serial}, #{MdsQuotaDetail.itemId}, #{MdsQuotaDetail.itemCode}, #{MdsQuotaDetail.itemName}, #{MdsQuotaDetail.normalField}, #{MdsQuotaDetail.modelNum}, #{MdsQuotaDetail.specs}, #{MdsQuotaDetail.quota}, #{MdsQuotaDetail.mdsUnitId}, #{MdsQuotaDetail.classify}, #{MdsQuotaDetail.remarks} FROM dual )

总结:1、在oracle中是没有values的。

          2、在oracle中separator的值为union all,mysq'中是","。

         3、在oracle中foreach中使用SELECT  ...  FROM dual。

        4、在foreach中#{属性值},oracle中必须是item的值点属性。

如有哪里不对的地方,欢迎在评论里指出

转载地址:http://ycfoi.baihongyu.com/

你可能感兴趣的文章
solr4.3默认的分词器
查看>>
solr中文分词的种类
查看>>
solr作为一种开源的搜索服务器
查看>>
solr检索建议的功能
查看>>
solr4.3的入门配置
查看>>
mmseg4j在solr4.3里面的配置
查看>>
初识Solr
查看>>
solr高亮功能
查看>>
solrcloud的分布式集群方案
查看>>
solr搭建一个基于eclipse的源码环境
查看>>
GreenPlum的并行查询优化策略
查看>>
mondrian和ssas哪个好
查看>>
Solr作为一个Web应用,可以部署在多种应用服务器
查看>>
Directory家族的层级分布图
查看>>
我们为什么应该坚持写博客
查看>>
因为多个jar可能记录日志信息时,日志模块,不知道需要用那个jar包
查看>>
Lucene里面支持join操作
查看>>
solr 4.2的入门配置
查看>>
shell脚本一键安装solr
查看>>
solr原子更新功能
查看>>