這是在自己做開發的時候發現的,首先不僅僅是insert,update也存在updateSelective這個方法,那么他們的區別是什么呢?
首先,來說說insert,使用insert插入數據時,mybatis會把所有字段都插入一遍,即使有的字段是沒有值的。而使用insertSelective插入數據時,只會給傳過來的字段判空並賦值,其實看上去沒什么區別,但是,如果有些字段有默認值的話,當你使用insert插入數據時,這個有默認值的字段不傳過來,就無法被賦上默認值,而是賦值為null,此時就要用到insertSelective去插入數據,這樣就可以將這個字段賦上默認值了!
接下來說下update的兩個方法,其實和insert是大同小異的,用update去更新數據時,會把每個字段都去更新,而使用updateSelective去更新的話,只會更新傳過來的字段進行更新,相較而言,updateSelective要比update好用許多。