日期:2014-05-17  浏览次数:20679 次

mybatis 批量插入,返回自增主键的主键值
请教各位达人,在mybatis3中,我要批量插入一批数据到mysql数据库,使用的foreach标签,这个表的主键是自动递增的,我想获取插入的这些数据的主键ID,请问怎么获得?用selectKey标签也获取不到。样例如下:
<insert id="saveBatchRechActivity" parameterType="java.util.List">
<selectKey keyProperty="id" resultType="int" order="AFTER">  
            select last_insert_id()  
    </selectKey>  
insert into td_rech_act_conf(card_type,channel_id,rech_amount,acct_amount,gift_amount,eff_time,exp_time,act_name,introduction)
values
<foreach collection="list" item="item" separator=",">
(#{item.cardType},#{item.channelId},#{item.rechAmount}*100,#{item.acctAmount}*100,#{item.giftAmount}*100,#{item.effTime},#{item.expTime},#{item.activityName},#{item.introduction})
</foreach>
</insert>
------解决方案--------------------
批量插入没办法吧!貌似只能获取最后一条插入的主键吧!
------解决方案--------------------
引用:
Quote: 引用:

批量插入没办法吧!貌似只能获取最后一条插入的主键吧!


如果不能获取到,用单条插入是不是用事务要好一些?

单条的话,用不用事务没什么影响吧!批量的话,放在一个事务中会好些!