【Mybatis】获取刚插入数据库的Id

在xml的insert标签加入useGeneratedKeys=“true” keyProperty="id"即可

  <insert id="insertBimModel" parameterType="com.xingceng.bimsys.mbg.model.BimModel" useGeneratedKeys="true" keyProperty="id">
        INSERT INTO `bim_model`
        (`id`,`model_id`,`parent_id`,`model_name`,`model_summary`,`create_time`,`model_path_zip`,
        `project_id`,`model_path`,`sort_num`,`type`,`deleted`)
        VALUES
        (#{id},#{modelId},#{parentId},#{modelName},
        #{modelSummary},#{createTime},#{modelPathZip},#{projectId},
        #{modelPath},#{sortNum},#{type},#{deleted})
    </insert>
  int i = bimModelDataDao.insertBimModel(bimParentModel);
 
            if (i>0){
                System.out.println("id="+bimParentModel.getId());
            }

注意可能导致useGeneratedKeys=“true” keyProperty=“id” id回显失效的场景

  • 数据库id列没有设置自增

  • 不要使用@Param和xx.xx

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
插入语句上加入下面这个标签也可以

  <insert id="insert" parameterType="com.xingceng.bimsys.mbg.model.BimModelProgress">
    <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
      SELECT LAST_INSERT_ID()
    </selectKey>
    insert into bim_model_progress (floor, major, plan_start_time, 
      plan_finish_time, actual_start_time, actual_finish_time, 
      status)
    values (#{floor,jdbcType=VARCHAR}, #{major,jdbcType=VARCHAR}, #{planStartTime,jdbcType=TIMESTAMP}, 
      #{planFinishTime,jdbcType=TIMESTAMP}, #{actualStartTime,jdbcType=TIMESTAMP}, #{actualFinishTime,jdbcType=TIMESTAMP}, 
      #{status,jdbcType=INTEGER})
  </insert>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值