分享

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

 dtl乐学馆 2015-01-22
Xml代码 复制代码 收藏代码
  1. <insert id="insert" parameterType="cn.***.beans.LogObject" >  
  2.     <selectKey resultType="java.lang.Integer" order="BEFORE" keyProperty="id">  
  3.         SELECT LOGS_SEQ.nextval AS ID FROM DUAL   
  4.     </selectKey>  
  5.     INSERT INTO S_T_LOGS (   
  6.         ID,    
  7.         USER_ID,    
  8.         USER_NAME,    
  9.         USER_IP,    
  10.         OPERATION_TIME,   
  11.         DESCRIPTION,    
  12.         RESOURCE_ID)    
  13.     VALUES (   
  14.         #{id},    
  15.         #{userId},    
  16.         #{userName},    
  17.         #{userIp},    
  18.         #{operationTime},   
  19.         #{description},    
  20.         #{resourceId})   
  21. </insert>  

   

orcale中。传进来的参数LogObject对象里的id字段就会被赋值成sequence的值。这样就达到返回刚插入记录的主键值的效果。

 

 

Xml代码 复制代码 收藏代码
  1. <insert id="insert" parameterType="cn.***.beans.LogObject" >  
  2.     <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">  
  3.           SELECT LAST_INSERT_ID() AS ID     
  4.     </selectKey>  
  5.     INSERT INTO S_T_LOGS (   
  6.         ID,    
  7.         USER_ID,    
  8.         USER_NAME,    
  9.         USER_IP,    
  10.         OPERATION_TIME,   
  11.         DESCRIPTION,    
  12.         RESOURCE_ID)    
  13.     VALUES (   
  14.         #{id},    
  15.         #{userId},    
  16.         #{userName},    
  17.         #{userIp},    
  18.         #{operationTime},   
  19.         #{description},    
  20.         #{resourceId})   
  21. </insert>  

 

 

mysql中。通过LAST_INSERT_ID() 获得刚插入的自动增长的id的值。

注意:selectKey中order属性的值是不同的,BEFORE先选择主键,设置keyProperty的值然后执行插入语句。

         AFTER是先执行插入语句,然后执行selectKey。

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多