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