mybatis使用多執行緒批量插入資料

2021-10-04 20:31:44 字數 1120 閱讀 3041

昨天在專案中有乙個excel導表的操作,於是就想著用多執行緒插入資料。網上找了下mabayis多執行緒插入資料,看了很多都是配置的xml,但我不是很喜歡寫xml.....於是自己手寫了乙個,**可能不是很優雅,但還是記錄一下.不多說,直接上**。

controller,和dao就不放了,

主要是service層

@override

public int upload(long *****id,listinterviewproblems) ;

trycatch(exception e)finally

});}

//如果計數器不為0,就等待,這個如果計數不正確,主線程就會先執行,相當於資料還沒有插完,就返回成功給前端.

countdownlatch.await();

}catch(exception e)finally

//判斷是否異常

if(flag[0] == 1)

return 1;

else

return 0;

}

這裡的執行緒池也可以換成

threadpoolexecutor threadpoolexecutor = new threadpoolexecutor(5,5,1,timeunit.seconds,new linkedblockingqueue<>(3));

如果不了解多執行緒和lamda表示式..

用我抽取的模板就行

public static void main(string args) ;

trycatch(exception e)finally

});}

countdownlatch.await();

}catch(exception e)finally

system.out.println("完成了.");

}

控制台列印結果

2.呼叫即可

不過我覺得這種自帶的不能夠細粒度的控制,另外原生mybatis和mybatisplus不確定是否有這種寫好的介面,但手寫多執行緒在多個orm框架上都適用.

批量VS多執行緒

在實際的編碼過程中,總會遇到單一處理會有效能風險的問題,於是我們求助於批量或者多執行緒。一 批量處理 一般情況下批量處理就可以規避大部分效能風險的問題。將fetch 改為batchfetch 多數情況都比較簡單,尤其是呼叫其他應用的介面時,將單一介面,換成批量介面即可 而最終主要是修改資料從資料庫中...

PostGrepSql 執行緒池多執行緒資料插入

資料庫表複製,資料量大時,用單純的客戶端工具只能單執行緒匯入,時間耗時長。本文主要採用jdbc和執行緒池解決這個問題。jdbc 我用的 postgrepsql 資料庫,根據自己的資料庫 新增pom.xml postgresqlgroupid postgresqlartifactid 9.1 901 ...

使用mybatis批量操作

mysql 資料庫中使用mybatis中使用replace into和 insert into on duplicate key update 前提條件 根據某一字段不能進行重複 存在就更新,不存在就插入資料 將字段設定為唯一索引 uniq 欄位名稱 一 replace into replace i...