ibatis 批量插入

CreationTime--2018年7月2日10点21分

Author:Marydon

1.说明

  基于oracle的sql语句

2.主键id有默认值,比如:sys_guid()

  id有默认值的情况下,插入的时候,不再声明该字段,当插入一条数据的时候,oracle会自动生成id。

<insert id="insertCONSULT_SCHEDULE_batch" parameterClass="java.util.List">INSERT ALL<iterate conjunction=" ">INTO CONSULT_SCHEDULE(ORG_CODE,DEPENT_ID,DEPENT_NAME,DOCTOR_ID,DOCTOR_NAME,DOCTOR_PHONE,SCHEDULE_DATE,WEEK_TXT,WB_TYPE,CLOSE_TZ,REPLACE_TZ,REMARK)VALUES         <![CDATA[ (#list[].ORG_CODE:VARCHAR#, #list[].DEPENT_ID:VARCHAR#, #list[].DEPENT_NAME:VARCHAR#, #list[].DOCTOR_ID:VARCHAR#, #list[].DOCTOR_NAME:VARCHAR#, #list[].DOCTOR_PHONE:VARCHAR#, TO_DATE(#list[].SCHEDULE_DATE#,'yyyy-MM-dd'),#list[].WEEK_TXT:VARCHAR#,         #list[].WB_TYPE:VARCHAR#, #list[].CLOSE_TZ:VARCHAR#, #list[].REPLACE_TZ:VARCHAR#, #list[].REMARK:VARCHAR#) ]]></iterate>SELECT 1 FROM DUAL
</insert>

  字符串需要声明jdbc类型为VARCHAR,可以做数据类型转换。 

3.主键id使用序列

  id使用序列,需要先查出来序列的值作为id,手动插入到数据库。

<!-- 图像表 批量插入sql -->
<insert id="insertIMAGE_INFOBatch" parameterClass="java.util.List">INSERT INTO IMAGE_INFO(ID,FORM_LIST_ID,IMAGE_NAME)SELECT SEQ_IMAGE_INFO.NEXTVAL,FORM_LIST_ID,IMAGE_NAME FROM(<iterate conjunction="UNION ALL" prepend=""><![CDATA[ SELECT #list[].FORM_LIST_ID:DECIMAL# AS FORM_LIST_ID, #list[].IMAGE_NAME:VARCHAR# AS IMAGE_NAME FROM DUAL ]]></iterate>)
</insert>

  由于oracle的序列的数据类型是number,因此其对应的jdbc类型为DECIMAL。

4. 注意

  iBATIS使用这种批量插入操作,局限性在于:

  每次插入的总数据不能超过1000(插入字段数*插入行数<=1000),使用大集合拆分成小集合的方式来限制每次插入数量不超过1000即可。      

相关推荐:

  • java List集合
  • Oracle 插入表数据的几种方式

转载于:https://www.cnblogs.com/Marydon20170307/p/9252768.html

ibatis 批量插入相关推荐

  1. mysql ibatis 批量插入_ibatis 批量插入逻辑

    ibatis oracle 批量插入配置 insert into T_LAW_STATISTICS_CLASSIFY(ID,TEMPLATE,ALIAS,CONTENT,BACKUP1,BACKUP2 ...

  2. ibatis批量插入数据-iterate标签详解及应用

     Sql代码   insert into tb_name(col1, col2, col3) values (col1_v, col2_v, col3_v), (col1_v, col2_v, c ...

  3. ibatis oracle批量insert,ibatis 批量插入oracle总结

    1. 使用批量插入最先想到如下的插入语句 insert into a (id,name) values('','') ,('','') 但是 oracle 并不支持这种写法 然后查询得知可以使用如下写 ...

  4. Oracle model iterate,ibatis组合Oracle的iterate insert批量插入

    ibatis批量插入oracle数据库 INSERT INTO SYS_ROLE_MENU( ROLE_ID, MENU_ID ) SELECT A.* FROM ( SELECT #list[].k ...

  5. 使用ibatis的iterate标签实现批量插入

    ibatis批量插入(使用iterate标签) 1.要注意版本是否支持foreach,我使用的版本就不支持.如果不支持,会报错,叫你必须指定foreach元素类型. 2.使用iterate的List时 ...

  6. Java ibatis批量insert,ibatis批量insert是什么写法?要怎么编写?

    与数据库的交互操作永远是一个框架的评判标准,什么项目都离不开数据库,这次我们来看看ibatis该怎么批量实现insert吧. 在ibatis框架中使用回调接口就可以实现数据的批量操作,减少对数据库的访 ...

  7. 16、mybatis动态sql 批量插入

    文章目录 1.EmployeeMapper 2.EmployeeMapper.xml(以逗号间隔执行一条语句)(推荐) 3.Test 4.以分号间隔执行每条语句(第二种方式) 5.Oracle下的批量 ...

  8. mybatis批量插入10万条数据的优化过程

    在使用mybatis插入大量数据的时候,为了提高效率,放弃循环插入,改为批量插入,mapper如下: package com.lcy.service.mapper;import com.lcy.ser ...

  9. Java通过Mybatis实现批量插入数据到Oracle中

    最近项目中遇到一个问题:导入数据到后台并将数据插入到数据库中,导入的数据量有上万条数据,考虑采用批量插入数据的方式: 结合网上资料,写了个小demo,文章末尾附上demo下载地址 1.新建项目:项目目 ...

最新文章

  1. org.quartz-scheduler 基础过程
  2. git pull问题“error: Your local changes to the following files would be overwritten by merge”解决方案
  3. POJ 2955 (区间DP)
  4. 谷歌将采取自动化系统审核,预计被误删视频数量或将大增
  5. 几个常用的Linux监控脚本
  6. Serverless 工程实践 | Serverless 应用优化与调试秘诀
  7. web 表单,脚本验证
  8. 【编译原理】为什么编程语言中,标识符不能以数字开头?
  9. 求职招聘市场复苏!市场平均薪资超8000元
  10. python面试技巧_经典7大Python面试题!看完考官竟然给了我30k的薪资
  11. 【基础】枚举学习笔记
  12. 基于pycrfsuite和sklearn_crfsuite的命名实体识别NER实战【以CoNLL2002数据集为基准】
  13. AfxMessageBox详细使用说明
  14. 450.删除二叉搜索树中的节点
  15. OpenCV的二值化处理函数threshold()详解
  16. c语言作业做出金山打字功能,C语言制作简易金山打字通功能的代码
  17. Jackson 学习笔记 XML转JSON
  18. 稳定触发windows蓝屏的路径漏洞,不要用来整人!
  19. [分享]SQl语句学习专题
  20. 【工业】工业无线组网场景下的典型拓扑及设备解决方案

热门文章

  1. WinRAR最新版V3.93 破解方法
  2. 为什么一定要回家?因为我们是中国人
  3. MySql数据库查询结果用表格输出PHP代码示例
  4. Android自定义View的实现方法,带你一步步深入了解View
  5. Android异步机制一:使用Thread+Handler实现非UI线程更新UI界面
  6. 二分图的最大带权匹配
  7. 构建自己的C/C++插件开发框架
  8. 穷举法--百钱买百鸡
  9. 修改tomcat端口号的方法:
  10. 目标代码文件、可执行文件和库