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