<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后自增的主鍵