分享

ibatis的selectkey

 爪一o_0一斗 2013-05-13
在使用ibatis插入数据进数据库的时候,会用到一些sequence的数据,有些情况下,在插入完成之后还需要将sequence的值返回,然后才能进行下一步的操作。 
      使用ibatis的selectKey就可以得到sequence的值,同时也会将值返回。不过对于不同的数据库有不同的操作方式。 
      对于oracle: 
      <insert id="insertUser" parameterClass="ibatis.User"> 
          <selectKey resultClass="long" keyProperty="id"> 
              select SEQ_USER_ID.nextval as id from dual 
          </selectKey> 
           insert into user 
          (id,name,password) 
          values 
          (#id#,#name#,#password#) 
      </insert> 
       该句话执行完之后,传进来的参数User对象DO里的id字段就会被赋值成sequence的值。 

     对于mysql 
     <insert id="insertUser" parameterClass="ibatis.User"> 
          insert into user 
          (name,password) 
          values 
          (#name#,#password#) 
          <selectKey resultClass="long" keyProperty="id">  
             SELECT LAST_INSERT_ID() AS ID  
        </selectKey>  
      </insert> 
       将selectKey放在insert之后,通过LAST_INSERT_ID() 获得刚插入的自动增长的id的值。

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多