首先在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();