当我们用mybatis insert插入数据之后需要插入后的自增id,如下操作后会直接赋值到领域模型的实体id中
- mybatis xml:
<insert id="insert" parameterType="com.xxx.entity.Event" useGeneratedKeys="true" keyProperty="id" keyColumn="id"> insert into evt_event (id, create_time, modify_time, create_user_id, modify_user_id, db_status, remark, event_name ) values (#{id,jdbcType=BIGINT}, #{createTime,jdbcType=TIMESTAMP}, #{modifyTime,jdbcType=TIMESTAMP}, #{createUserId,jdbcType=BIGINT}, #{modifyUserId,jdbcType=BIGINT}, #{dbStatus,jdbcType=TINYINT}, #{remark,jdbcType=VARCHAR} ) <selectKey keyProperty="id" resultType="long" order="AFTER"> SELECT LAST_INSERT_ID(); </selectKey> </insert>
- 关键在于:获取插入后id,这里是自增id
<selectKey keyProperty="id" resultType="long" order="AFTER"> SELECT LAST_INSERT_ID(); </selectKey>
- 如果是uuid:可以自己代码先生成或者这里获取
<selectKey keyProperty="id" order="BEFORE" resultType="java.lang.String"> select uuid() </selectKey>