oracle:插入記錄返回其id

在mapper.xml對應的方法中使用selectKey 標籤把生成的序列保存到參數某個字段:

<insert id="add" parameterType="com.mlsama.admin.entities.request.AddResourceReq">
    <selectKey keyProperty="id" order="BEFORE" resultType="long">
        select SEQ_DAP_RESOURCE.nextval from dual
    </selectKey>
    INSERT INTO T_DAP_RESOURCE VALUES (
    #{id},
    #{name},
    #{url},
    #{type},
    #{icon},
    #{pid}
      )
</insert>

說明:

1. keyProperty: 把生成的序列保存到參數對象的哪個字段中.這裏是AddResourceReq對象的id

2. order: 保存時機.

          BEFORE: 在insert語句執行前

          AFTER: 在insert語句執行後

   oracle需要設置成BEFORE,MySQL的id一般是自增,要設置爲AFTER

3. resultType: 返回類型

當執行完add方法後,序列就保存到了AddResourceReq對象的id

@Override
public Long add(AddResourceReq req) {
    resourceMapper.add(req);
    return req.getId();

}

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