使用Mybatis返回插入數據的自增主鍵

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章