mybatis 插入时回到刚插入记录的主键值
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。