Mybatis獲取插入數據的主鍵時,返回值總是1的問題解決


xml里的寫法
第一種方式

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

 第二種方式

<insert id="saveLogin" parameterType="cn.com.zxws.pojo.LoginInfo">
        INSERT INTO LoginInfo
            (username,password,state,role)
        VALUES
            (#{username},#{password},#{state}, #{role})
        <selectKey resultType="Long" keyProperty="userId" order="AFTER">
            SELECT LAST_INSERT_ID()
        </selectKey>
    </insert>

 service寫法:
1.錯誤的寫法:xml里面sql執行后返回的值是受影響行數,並不是具體的值

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

 2.正確寫法

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

 直接用之前傳入的對象的getId()方法來獲取。

 


免責聲明!

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



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