ibatis 批量插入
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 批量插入相关推荐
- mysql ibatis 批量插入_ibatis 批量插入逻辑
ibatis oracle 批量插入配置 insert into T_LAW_STATISTICS_CLASSIFY(ID,TEMPLATE,ALIAS,CONTENT,BACKUP1,BACKUP2 ...
- ibatis批量插入数据-iterate标签详解及应用
Sql代码 insert into tb_name(col1, col2, col3) values (col1_v, col2_v, col3_v), (col1_v, col2_v, c ...
- ibatis oracle批量insert,ibatis 批量插入oracle总结
1. 使用批量插入最先想到如下的插入语句 insert into a (id,name) values('','') ,('','') 但是 oracle 并不支持这种写法 然后查询得知可以使用如下写 ...
- Oracle model iterate,ibatis组合Oracle的iterate insert批量插入
ibatis批量插入oracle数据库 INSERT INTO SYS_ROLE_MENU( ROLE_ID, MENU_ID ) SELECT A.* FROM ( SELECT #list[].k ...
- 使用ibatis的iterate标签实现批量插入
ibatis批量插入(使用iterate标签) 1.要注意版本是否支持foreach,我使用的版本就不支持.如果不支持,会报错,叫你必须指定foreach元素类型. 2.使用iterate的List时 ...
- Java ibatis批量insert,ibatis批量insert是什么写法?要怎么编写?
与数据库的交互操作永远是一个框架的评判标准,什么项目都离不开数据库,这次我们来看看ibatis该怎么批量实现insert吧. 在ibatis框架中使用回调接口就可以实现数据的批量操作,减少对数据库的访 ...
- 16、mybatis动态sql 批量插入
文章目录 1.EmployeeMapper 2.EmployeeMapper.xml(以逗号间隔执行一条语句)(推荐) 3.Test 4.以分号间隔执行每条语句(第二种方式) 5.Oracle下的批量 ...
- mybatis批量插入10万条数据的优化过程
在使用mybatis插入大量数据的时候,为了提高效率,放弃循环插入,改为批量插入,mapper如下: package com.lcy.service.mapper;import com.lcy.ser ...
- Java通过Mybatis实现批量插入数据到Oracle中
最近项目中遇到一个问题:导入数据到后台并将数据插入到数据库中,导入的数据量有上万条数据,考虑采用批量插入数据的方式: 结合网上资料,写了个小demo,文章末尾附上demo下载地址 1.新建项目:项目目 ...
最新文章
- org.quartz-scheduler 基础过程
- git pull问题“error: Your local changes to the following files would be overwritten by merge”解决方案
- POJ 2955 (区间DP)
- 谷歌将采取自动化系统审核,预计被误删视频数量或将大增
- 几个常用的Linux监控脚本
- Serverless 工程实践 | Serverless 应用优化与调试秘诀
- web 表单,脚本验证
- 【编译原理】为什么编程语言中,标识符不能以数字开头?
- 求职招聘市场复苏!市场平均薪资超8000元
- python面试技巧_经典7大Python面试题!看完考官竟然给了我30k的薪资
- 【基础】枚举学习笔记
- 基于pycrfsuite和sklearn_crfsuite的命名实体识别NER实战【以CoNLL2002数据集为基准】
- AfxMessageBox详细使用说明
- 450.删除二叉搜索树中的节点
- OpenCV的二值化处理函数threshold()详解
- c语言作业做出金山打字功能,C语言制作简易金山打字通功能的代码
- Jackson 学习笔记 XML转JSON
- 稳定触发windows蓝屏的路径漏洞,不要用来整人!
- [分享]SQl语句学习专题
- 【工业】工业无线组网场景下的典型拓扑及设备解决方案