ibatis返回插入后的主键值

 项目中遇到一个问题,需要在插入一条记录后,得到该记录的主键值。

该主键值是通过序列自动生成~

在阅读了一些文章后,总结出了如下方法:

 

在ibatis配置中,在insert语句之前,加入selectKey配置

 <insert id="insertProduct-ORACLE" parameterClass="com.domain.Product">
  <selectKey resultClass="int" keyProperty="id" >
  SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL
  </selectKey>
  insert into PRODUCT (PRD_ID,PRD_DESCRIPTION)
  values (#id#,#description#)
 </insert>

其中<selectKey>中的keyProperty="id" 为相应表的主键名。保证该属性的类型和javabean中
相应属性类型一致。
若id为int类型,那么<selectKey>中
的resultClass="int" ,将sqlMap.insert返回的object转换为int类型。
若该属性id为String,则<selectKey>中的resultClass="String",将sqlMap.insert返回的object转换为String类型。

注意:

插入的值中,value中对应的id即为selectKey中查询到的id值,此时若继续使用序列,则会造成连续使用,使序列跳数

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值