MyBatis批量插入多條資料,報錯 巢狀層太深

2021-10-09 20:54:13 字數 768 閱讀 6337

近期在使用達夢資料庫(和oracel語法差不多)批量插入資料的時候報錯:巢狀層太多。

看了報錯資訊發現插入資料並不算太多一共145條,sql語句也沒有問題,但就是執行不成功,感覺是拼接後的sql語句太長了,導致執行無果。

分批次執行,每次50條,手動提交事務。

//分批次插入 資料  insertranges

private int batchinsertdatas( listscorerangelist)

session.insert("insertranges", templist);

session.clearcache();

}session.commit();

result=stop;

} catch (exception e) finally

}return result;

}

需要注意的是  需要手動注入  org.mybatis.spring.sqlsessiontemplate 

@autowired

private sqlsessiontemplate sqlsessiontemplate;

獲取session連線後,找到mybatis上下文中「insertranges」 的執行語句,提交事務,獲取插入結果。

這點資料量就要分批次執行,總感覺不太行,暫時也沒啥想法,往後拖拖在說。

MyBatis 動態插入多條資料

mysql支援的一種插入多行資料的insert語句寫法是 insert into 表名 欄位名1,欄位名2,欄位名3 values 值1,值2,值3,值1,值2,值3,對應的介面方法 給news插入多條類別 public int addmorenewstypebynewsid param newsi...

MySQL批量插入多條資料

mysql在插入大量資料 十萬級或者百萬級別 時效率會變得很差,所以需要採用以下方法來提高其插入效率。a 關閉自動提交,改為手動提交 connect.setautocommit false 插入資料完後最後再con.commit b 拆分資料,多執行緒入庫 c 一條插入語句插入多條資料 insert...

Oracle 批量插入多條資料

mysql中可以這樣 insert into test table id,name,age values 1 abc 23 2 kkk 33 以上語句不能在oracle資料庫執行。oracle中可以這樣 insert allinto test table id,name,age values 1 a...