mybatis:主表与副表一对多时插入操作如何获取刚保存的主键ID

话不多说直接上代码:

主表:GoodShelf、副表:pallets 

主表上加上:useGeneratedKeys="true" keyProperty="id" ,id为主键名称,省略不重要的代码

<insert id="insertSelective" parameterType="com.ljb.entity.GoodShelf" useGeneratedKeys="true" keyProperty="id">
    insert into T_GOODSHELF
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="id != null" >
        Id,
      </if>
      ...
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="id != null" >
        #{id,jdbcType=INTEGER},
      </if>
      ...
    </trim>
  </insert>

插入代码

public String add(GoodShelf goodshelf) throws Exception{
		...
		result = goodShelfMapper.insertSelective(goodshelf);//保存 
		...
			Pallet pallet = new Pallet();
			...
			pallet.setGoodshelfkey(goodshelf.getId());//获取刚保存的主表主键
			pallets.add(pallet);
		...
		result = palletMapper.insertPallerBatch(pallets);//批量保存箱信息
		...
		return str;
	}

以上注:useGeneratedKeys="true" keyProperty="主键列名"  或  <selectKey keyProperty="applyId" resultType="Integer" order="AFTER"> SELECT LAST_INSERT_ID() </selectKey>,可获取数据表中的自增的"主键列名"存放在持久类中的属性名"主键列名","主键列名"也是明细表对应主表的外键

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值