|
<insert id="insert" parameterType="cn.***.beans.LogObject" >
<selectKey resultType="java.lang.Integer" order="BEFORE" keyProperty="id">
SELECT LOGS_SEQ.nextval AS ID FROM DUAL
</selectKey>
INSERT INTO S_T_LOGS (
ID,
USER_ID,
USER_NAME,
USER_IP,
OPERATION_TIME,
DESCRIPTION,
RESOURCE_ID)
VALUES (
#{id},
#{userId},
#{userName},
#{userIp},
#{operationTime},
#{description},
#{resourceId})
</insert>
orcale中。传进来的参数LogObject对象里的id字段就会被赋值成sequence的值。这样就达到返回刚插入记录的主键值的效果。
<insert id="insert" parameterType="cn.***.beans.LogObject" >
<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
SELECT LAST_INSERT_ID() AS ID
</selectKey>
INSERT INTO S_T_LOGS (
ID,
USER_ID,
USER_NAME,
USER_IP,
OPERATION_TIME,
DESCRIPTION,
RESOURCE_ID)
VALUES (
#{id},
#{userId},
#{userName},
#{userIp},
#{operationTime},
#{description},
#{resourceId})
</insert>
mysql中。通过LAST_INSERT_ID() 获得刚插入的自动增长的id的值。
注意:selectKey中order属性的值是不同的,BEFORE先选择主键,设置keyProperty的值然后执行插入语句。
AFTER是先执行插入语句,然后执行selectKey。 |
|
|