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