mybatis通過batch批量提交 mybatis foreach是一次提交嗎?
mybatis foreach是一次提交嗎?mybatis的foreach只是一個(gè)封裝SQL的過程,最終封裝完成的SQL一次提交首先需要了解事務(wù)的概念,以保持?jǐn)?shù)據(jù)的一致性。在mybatis中,默認(rèn)情況
mybatis foreach是一次提交嗎?
mybatis的foreach只是一個(gè)封裝SQL的過程,最終封裝完成的SQL一次提交
首先需要了解事務(wù)的概念,以保持?jǐn)?shù)據(jù)的一致性。在mybatis中,默認(rèn)情況下不啟用事務(wù)的自動(dòng)提交,因此需要插入。但是,系統(tǒng)認(rèn)為您的一系列操作尚未完成。為了保證數(shù)據(jù)的一致性,系統(tǒng)不會(huì)添加此新數(shù)據(jù)。只有手動(dòng)提交時(shí),數(shù)據(jù)庫才會(huì)添加數(shù)據(jù)
我猜主體可能會(huì)使用sqlmapper中的foreach進(jìn)行批處理,其實(shí)不建議使用此方法進(jìn)行批處理,因?yàn)榕幚頂?shù)據(jù)量大時(shí)會(huì)出現(xiàn)性能問題。如果您堅(jiān)持使用這種方法,請(qǐng)將foreach的數(shù)量控制在50以內(nèi)。
事實(shí)上,mybatis還正式推薦批量處理的方法。問題負(fù)責(zé)人可以試試。這種批量加工的方法可以批量插入數(shù)萬件,而且性能不會(huì)太差。另外,我認(rèn)為如果采用官方推薦的方式,也不會(huì)出現(xiàn)這樣的問題。
官方文件:https://mybatis.org/mybatis-dynamic-sql/docs/insert.html?spm=ata.13261165.0.0.4dc71d1dlF3NxT
注:提供批量插入和批量修改