首先在Mybatis的xml加入 useGeneratedKeys="true" keyProperty="userId"两条属性
useGeneratedKeys默认是false,当设置为true时,会返回当前插入数据的主键值到入参的参数中;
keyProperty:指定主键名称
具体使用如下:
<insert id="insertSelective" parameterType="com.tymk.front.model.hebi.HebiChangedLog" useGeneratedKeys="true" keyProperty="id">
insert into hebi_changed_log
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="userId != null">
user_id,
</if>
<if test="operType != null">
oper_type,
</if>
<if test="changedTime != null">
changed_time,
</if>
<if test="changedAmount != null">
changed_amount,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
</if>
<if test="userId != null">
#{userId,jdbcType=BIGINT},
</if>
<if test="operType != null">
#{operType,jdbcType=INTEGER},
</if>
<if test="changedTime != null">
#{changedTime,jdbcType=TIMESTAMP},
</if>
<if test="changedAmount != null">
#{changedAmount,jdbcType=INTEGER},
</if>
</trim>
</insert>
然后我们的插入语句中的原有值中就会增加id的值,然后获取id即可。
HebiChangedLog hebiChangedLogPara = new HebiChangedLog();
hebiChangedLogPara.setChangedAmount(hebiPackageInfo.getExchangePrice());
hebiChangedLogPara.setChangedTime(new Date());
hebiChangedLogPara.setOperType(12);
hebiChangedLogPara.setUserId(userId);
hebiChangedLogMapper.insertSelective(hebiChangedLogPara);
//我们在这里就能获取到id了
hebiChangedLogPara.getId();