詳解mybatis plus使用insert沒有返回主鍵的處理
項目使用springboot搭建。最初的時候是使用mybatis,后來升級到mybatis plus。按照mp的官網(wǎng)介紹,使用mp的insert方法,對于自增的數(shù)據(jù)庫表,mp會把主鍵寫入回實例的對應(yīng)屬性。但實際操作起來,卻沒有主鍵。
entity 類設(shè)置如下:
@TableName(value = "USERINFO")
public class UserInfo {
/**
* 指定自增策略
*/
@TableId(value = "user_id",type = IdType.AUTO)
private Long userId;
private String gender;
private Date birthday;
private String phone;
//省略后面的其他屬性和getter/setter
}
dao 類設(shè)置如下:
@Repository
@Mapper
public interface UserInfoDao extends BaseMapper<UserInfo> {
// int insert(UserInfo record);
int insertSelective(UserInfo record);
UserInfo selectByPrimaryKey(Long logId);
int updateByPrimaryKeySelective(UserInfo record);
}
Service類調(diào)用userInfoDao的insert方法(此方法是來源于BaseMapper)。但是insert成功后沒有返回主鍵userId。上網(wǎng)查了下,其他人都是這樣設(shè)置,就會有主鍵返回。
看到dao類里面一條注釋,// int insert(UserInfo record); ,心里有個想法。
這條注釋對應(yīng)的insert方法,是使用mybatis generator生成的。但是因為此方法名和mybatis plus的通用方法名一樣,所以我把它注釋了。會不會是因為dao對應(yīng)的mapper.xml文件,里面的id = inesert的sql語句依然存在,從而覆蓋掉了mybatis plus的通用insert,所以沒有自動返回主鍵。
點進去對應(yīng)mapper.xml文件,果然看到<insert id="insert">的sql語句。刪掉該語句,重試mybatis plus的insert方法,這次有主鍵返回了。
到此這篇關(guān)于詳解mybatis plus使用insert沒有返回主鍵的處理的文章就介紹到這了,更多相關(guān)mybatis plus insert沒有主鍵內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IDEA Java win10環(huán)境配置的圖文教程
這篇文章主要介紹了IDEA Java win10環(huán)境配置,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
java volatile關(guān)鍵字使用方法及注意事項
這篇文章主要介紹了java volatile關(guān)鍵字使用方法及注意事項的相關(guān)資料,當(dāng)一個變量被聲明為 volatile 后,java 內(nèi)存模型確保所有使用該變量的線程能看到相同的、一致的值。,需要的朋友可以參考下2017-07-07
Java 基于Spire.Cloud.SDK for Java在PDF中繪制形狀
這篇文章主要介紹了Java 基于Spire.Cloud.SDK for Java在PDF中繪制形狀,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
SpringBoot集成Devtools實現(xiàn)熱更新
DevTools是開發(fā)者工具集,主要用于簡化開發(fā)過程中的熱部署問題,熱部署是指在開發(fā)過程中,當(dāng)代碼發(fā)生變化時,無需手動重啟應(yīng)用,系統(tǒng)能夠自動檢測并重新加載修改后的代碼,本文給大家介紹了SpringBoot集成Devtools實現(xiàn)熱更新,需要的朋友可以參考下2024-08-08
Spring Boot 整合單機websocket的步驟 附github源碼
websocket 是一個通信協(xié)議,通過單個 TCP 連接提供全雙工通信,這篇文章主要介紹了Spring Boot 整合單機websocket的步驟(附github源碼),需要的朋友可以參考下2021-10-10
SpringBoot整合Mybatis,解決TypeAliases配置失敗的問題
這篇文章主要介紹了SpringBoot整合Mybatis,解決TypeAliases配置失敗的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07

