更新時間:2023年01月30日17時20分 來源:傳智教育 瀏覽次數(shù):
MyBatisPlus中DML的相關(guān)新增成功后,主鍵ID是一個很長串的內(nèi)容,我們更想要的是按照數(shù)據(jù)庫表字段進(jìn)行自增長,在MP中都提供了哪些主鍵生成策略,我們該如何進(jìn)行選擇?
NONE: 不設(shè)置id生成策略,MP不自動生成,約等于INPUT,所以這兩種方式都需要用戶手動設(shè)置,但是手動設(shè)置第一個問題是容易出現(xiàn)相同的ID造成主鍵沖突,為了保證主鍵不沖突就需要做很多判定,實現(xiàn)起來比較復(fù)雜。
AUTO:數(shù)據(jù)庫ID自增,這種策略適合在數(shù)據(jù)庫服務(wù)器只有1臺的情況下使用,不可作為分布式ID使用ASSIGN_UUID:可以在分布式的情況下使用,而且能夠保證唯一,但是生成的主鍵是32位的字符串,長度過長占用空間而且還不能排序,查詢性能也慢。
ASSIGN_ID:可以在分布式的情況下使用,生成的是Long類型的數(shù)字,可以排序性能也高,但是生成的策略和服務(wù)器時間有關(guān),如果修改了系統(tǒng)時間就有可能導(dǎo)致出現(xiàn)重復(fù)主鍵。
綜上所述,每一種主鍵策略都有自己的優(yōu)缺點,根據(jù)自己項目業(yè)務(wù)的實際情況來選擇使用才是最明智的選擇。