【MySQL】selectKey獲取insert后的自動主鍵


  <insert id="insert" parameterType="cc.mrbird.febs.energy.domain.ChatGroup">
  <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
      select LAST_INSERT_ID()
  </selectKey>
    insert into chat_group (id, group_index, group_name, 
      member_id)
    values (#{id,jdbcType=BIGINT}, #{groupIndex,jdbcType=VARCHAR}, #{groupName,jdbcType=VARCHAR}, 
      #{memberId,jdbcType=BIGINT})
  </insert>

selectKey  會將 SELECT LAST_INSERT_ID()的結果放入到傳入的model的主鍵里面,  

  • keyProperty 對應的model中的主鍵的屬性名,這里是 user 中的id,因為它跟數據庫的主鍵對應  
  • order AFTER 表示 SELECT LAST_INSERT_ID() 在insert執行之后執行,多用與自增主鍵,  
  • BEFORE 表示 SELECT LAST_INSERT_ID() 在insert執行之前執行,這樣的話就拿不到主鍵了,  
  • resultType 主鍵類型 

實體類

public class ChatGroup implements Serializable {
    private Long id;

    private String groupIndex;

    private String groupName;

    private Long memberId;

    private static final long serialVersionUID = 1L;
}

調用

insert方法之后,ChatGroup.getId()獲取insert后自增的主鍵

 


免責聲明!

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



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