ibatis 批量插入
生活随笔
收集整理的這篇文章主要介紹了
ibatis 批量插入
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
ibatis 批量插入
CreationTime--2018年7月2日10點(diǎn)21分
Author:Marydon
1.說(shuō)明
基于oracle的sql語(yǔ)句
2.主鍵id有默認(rèn)值,比如:sys_guid()
id有默認(rèn)值的情況下,插入的時(shí)候,不再聲明該字段,當(dāng)插入一條數(shù)據(jù)的時(shí)候,oracle會(huì)自動(dòng)生成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類(lèi)型為VARCHAR,可以做數(shù)據(jù)類(lèi)型轉(zhuǎn)換。 ?
3.主鍵id使用序列
id使用序列,需要先查出來(lái)序列的值作為id,手動(dòng)插入到數(shù)據(jù)庫(kù)。
<!-- 圖像表 批量插入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的序列的數(shù)據(jù)類(lèi)型是number,因此其對(duì)應(yīng)的jdbc類(lèi)型為DECIMAL。
4. 注意
iBATIS使用這種批量插入操作,局限性在于:
每次插入的總數(shù)據(jù)不能超過(guò)1000(插入字段數(shù)*插入行數(shù)<=1000),使用大集合拆分成小集合的方式來(lái)限制每次插入數(shù)量不超過(guò)1000即可。
?
?相關(guān)推薦:
- java List集合
- Oracle 插入表數(shù)據(jù)的幾種方式
?
轉(zhuǎn)載于:https://www.cnblogs.com/Marydon20170307/p/9252768.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的ibatis 批量插入的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LUOGU P4195 Spoj3105
- 下一篇: 接口类抽象类 封装