SpringBoot整合MyBatis獲得插入數據后獲取主鍵,返回值總是1


xml里的寫法 

<insert id="insertLogin" parameterType="com.xyt.p2p.pojo.LoginInfo" keyColumn="userId" 
 useGeneratedKeys="true" keyProperty="userId">
    INSERT INTO LoginInfo
        (username,password,state,role)
    VALUES
        (#{username},#{password},#{state}, #{role})
</insert>

采用keyProperty的方式獲取主鍵,我的實體類上也有對應的屬性cardId,而我數據庫的主鍵card_id也是自增的,但是獲得的值一直是1?!!!

em…難道是我啟動項目的姿勢不對?要不我換個妖嬈的姿勢啟動看看?莫非代碼也看臉?

 

幾經周轉才發現原來是因為我service層獲得主鍵id的方式不對,下面是我錯誤的寫法:

serviceImpl寫法: 
1.錯誤的示范:其實xml里面sql執行后返回的值是受影響行數

public Result register(LoginInfo user) {
    Long userId = loginMapper.insertLogin(user);
    System.out.println(userId);
}

2.正確方式

public Result register(LoginInfo user) {
    loginMapper.insertLogin(user);
    System.out.println(user.getUserId());
}

最終還是需要用之前傳入的對象的getId()方法來獲取。

 

ending...

 

 

原文:https://blog.csdn.net/weixin_42244235/article/details/82391810


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM