写上
<selectKey resultType="String" order="BEFORE" keyProperty="enterp_no">
SELECT PRSP_CRM_ENTERP_ID.nextval FROM DUAL
</selectKey>
其中:PRSP_CRM_ENTERP_ID.nextval 是oracle 序列自增。因为oracle 中没有自增设置。。
DUAL : 这个不需要变化。
resultType :正常的返回值。 也就是PRSP_CRM_ENTERP_ID.nextval 的返回值类型
order :这个oracle 必须写BEFORE,MysqL 是after 。
keyProperty:这个是你的实体类中的一个属性。
注意:
如何操作呢?
这里上面明显new 一个对象 但是只存了两个值。如果执行了上面一个新增语句,那么这个 ID 就会映射到实体类中了。。直接取得就好了。。
注意:不能直接取 retID 不然这个永远都是 1。。。 不要采坑
MysqL 中 如下:
- <insertid="insert"parameterType="cn.***.beans.logobject">
- <selectKeyresultType="java.lang.Integer"order="AFTER"keyProperty="id">
- SELECTLAST_INSERT_ID()ASID
- </selectKey>
- INSERTINTOS_T_LOGS(
- ID,
- USER_ID,
- USER_NAME,
- USER_IP,
- OPERATION_TIME,
- DESCRIPTION,
- RESOURCE_ID)
- VALUES(
- #{id},
- #{userId},
- #{userName},
- #{userIp},
- #{operationTime},
- #Xml代码 insertid="insert"parameterType="cn.***.beans.logobject"> selectKeyresultType="java.lang.Integer"order="BEFORE"keyProperty="id"> SELECTLOGS_SEQ.nextvalASIDFRO,
- #{resourceId})
- </insert>