mybatis插入的同时获取主键id

时间:2023-03-08 19:33:22
<insert id="insertAndReturnId" parameterType="com.qianlong.cms.entity.AppCmsRole"
useGeneratedKeys="true" keyProperty="id">
insert into app_cms_role
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="name != null">
name,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
<if test="appId != null">
app_id,
</if>
<if test="roleName != null">
role_name,
</if>
<if test="rolePrivilege != null">
role_privilege,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="name != null">
#{name,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="appId != null">
#{appId,jdbcType=INTEGER},
</if>
<if test="roleName != null">
#{roleName,jdbcType=VARCHAR},
</if>
<if test="rolePrivilege != null">
#{rolePrivilege,jdbcType=VARCHAR},
</if>
</trim>
</insert>

需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值。

方法:在mapper中指定keyProperty属性,示例如上:

AppCmsRole role=new AppCmsRole();
appCmsRoleExMapper.insertAndReturnId(role);
role.getId();//就能获取到id了,很神奇吧