Mybatis批量插入数据到Oracel
生活随笔
收集整理的這篇文章主要介紹了
Mybatis批量插入数据到Oracel
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近項目中出現了一個功能存在性能問題,經過研究發現主要是出現在數據插入的時候,當時用的單條提交,發現性能極其差,因為項目中用的mybatis,所以考慮用批量提交的方式。
<!-- 批量提交 --><insert id="batchInsertWithoutSeq" parameterType="java.util.List">insert into ACC_AGGENTRY (SEQ, AGGENTRY_SEQ, THIACCOUNTSUM_SEQ, BUSDATA_FLAG, ENTRY_TYPE, FUND_PROPERTY, FIRSTACCOUNT_NAME, SECACCOUNT_NAME, THIACCOUNT_NAME, DEBIT_CREDIT, ORIGIN_CURR, ORIGIN_AMT, DOMESTIC_CURR, DOMESTIC_AMT, COST_CENTER, OTHER_NAME, DOC_TYPE, TRADE_DATE, TALLY_DATE, AGGENTRY_DATETIME, PRODUCT_FLAG, OFFLINE_DOCTYPE, DOC_NO, AIRPRO_DOM, ACCOUNT_MONTH, ITFC_DATETIME, ITFC_NAME, ACCOUNT_PROPERTY, BUSINESSTYPE,FIRST_ACCOUNT_CODE) <foreach collection="list" item="itm" index="index" separator="UNION ALL">(select #{itm.seq,jdbcType=DECIMAL},#{itm.aggentrySeq,jdbcType=DECIMAL}, #{itm.thiaccountsumSeq,jdbcType=DECIMAL}, #{itm.busdataFlag,jdbcType=VARCHAR}, #{itm.entryType,jdbcType=VARCHAR}, #{itm.fundProperty,jdbcType=VARCHAR}, #{itm.firstaccountName,jdbcType=VARCHAR}, #{itm.secaccountName,jdbcType=VARCHAR}, #{itm.thiaccountName,jdbcType=VARCHAR}, #{itm.debitCredit,jdbcType=VARCHAR}, #{itm.originCurr,jdbcType=VARCHAR}, #{itm.originAmt,jdbcType=DECIMAL}, #{itm.domesticCurr,jdbcType=VARCHAR}, #{itm.domesticAmt,jdbcType=DECIMAL}, #{itm.costCenter,jdbcType=VARCHAR}, #{itm.otherName,jdbcType=VARCHAR}, #{itm.docType,jdbcType=VARCHAR}, #{itm.tradeDate,jdbcType=DECIMAL}, #{itm.tallyDate,jdbcType=DECIMAL}, #{itm.aggentryDatetime,jdbcType=DECIMAL}, #{itm.productFlag,jdbcType=VARCHAR}, #{itm.offlineDoctype,jdbcType=VARCHAR}, #{itm.docNo,jdbcType=VARCHAR}, #{itm.airproDom,jdbcType=VARCHAR}, #{itm.accountMonth,jdbcType=DECIMAL}, #{itm.itfcDatetime,jdbcType=DECIMAL}, #{itm.itfcName,jdbcType=VARCHAR}, #{itm.accountProperty,jdbcType=VARCHAR}, #{itm.businesstype,jdbcType=VARCHAR}, #{itm.firstAccountCode,jdbcType=VARCHAR}from dual)</foreach></insert>?? 批量提交的核心功能
??
?? 遇到的問題:如果一次提交的數據條數過大,比如3000條,就會報異常:無效主機/綁定變量 的異常,很模糊的一個錯誤,后來只能改成多次分批提交,具體分多少次一次多少條,當時測試1000條一次是沒有問題。
?
希望遇到相同問題的人給予解釋,謝謝
?
?
總結
以上是生活随笔為你收集整理的Mybatis批量插入数据到Oracel的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 引爆5G市场,场景为王?
- 下一篇: 状态已恢复七八成