Mybatis Oracle批量插入問題記錄

2021-08-20 18:10:18 字數 658 閱讀 1462

重點:oracle不支援insert into table values(),(),......這種語法。

因此,我們可以考慮以下兩種方式實現批量插入

1、多條insert into語句(但是效率比較低)

insert into table(bean.a,bean.b) values(#,#)

備註:jdbctype=integer 指定jdbctype型別是為了保證當記錄值為null時,不報異常。

2、insert into table select * from dual的方式

insert into table(bean.a,bean.b) 

select #,

#from dual

二、批量插入遇到的問題:

1、當資料量過大時,出錯:

ora-01745: 無效的主機/繫結變數名
在sql拼寫沒問題的前提下,錯誤由以下原因導致:

sql長度限制導致,具體多大,沒有搜到確切的答案。因此,如果資料量較大的前提下,建議分批次提交。

以下提供一種分批次提交的實現思路:

利用list.sublist()方法,實現分批次取出list中的資料,並單獨呼叫mybatis的方法。

mybatis oracle 批量插入

1.專案中用的是mybatis框架,插入1500條資料,是遍歷list,1500次呼叫 這樣效能很差,要等9秒左右。因為1500次呼叫,需要commint1500次,這樣時間嚴重浪費呀!2.所以,想到批量插入。以下是針對oracle的寫法,資料庫 不同,寫法不一樣的哦,這點需要注意以下 insert...

Mybatis Oracle批量插入資料

專案中會遇到這樣的情況,查詢出多條記錄 乙個list物件集合 一次性要插入多條資料到資料庫中。一般有兩種方式可以解決 缺點 資料多的時候效率太慢,不建議使用 mybatis本身是很靈活的,因為可以自己在xml檔案中編寫sql進行操作,那就可以一次性將插入到資料庫中,這樣只用向資料庫提交一次,效能也可...

mybatis批量查詢,批量新增,批量更新

一 多條件批量查詢 先上 再講解 select from ifs company where id and code id標籤不用多說,和dao方法一一對應。parametertype標籤寫list就可以,如果是其他型別對應寫就可以。resultmap,自己定義的字段實體類對應。二 批量新增 先上 ...