mybatis 插入时返回刚插入记录的主键值

<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。
【转】原文:http://530247683.iteye.com/blog/1162234

猜你喜欢

转载自xiongbin-it.iteye.com/blog/2114117