(oracle)Mybatis 实现ID自增且批量新增问题(非java代码循环)

<insert id="saveTemplateCategory" useGeneratedKeys="false" parameterType="list">
    INSERT INTO SCM_ASSESS_TEMPLATE_CATEGORY(TEMPLATE_CATEGORY_ID,TEMPLATE_ID, CATEGORY_ID, 
    CATEGORY_TYPE, CATEGORY_NAME, MATERIAL_TYPE,
    CATEGORY_CODE,ENABLED_FLAG,
    CREATION_DATE, CREATED_BY, LAST_UPDATED_BY, LAST_UPDATED_DATE, TENANT_ID)
    SELECT ASSESS_TEMPLATE_CATEGORY_S.nextval TEMPLATE_CATEGORY_ID,t.* FROM 
    <foreach collection="list" item="category" separator="UNION all">                     
        (SELECT
        #{category.templateId} TEMPLATE_ID,
        #{category.categoryId} CATEGORY_ID,
        #{category.categoryType} CATEGORY_TYPE,
        #{category.categoryName} CATEGORY_NAME,
        #{category.materialType,jdbcType=VARCHAR} MATERIAL_TYPE,
        #{category.categoryCode} CATEGORY_CODE,
        #{category.enabledFlag} ENABLED_FLAG,
        #{category.creationDate} CREATION_DATE,
        #{category.createdBy} CREATED_BY,
        #{category.lastUpdatedBy,jdbcType=NUMERIC} LAST_UPDATED_BY,
        #{category.lastUpdatedDate,jdbcType=DATE} LAST_UPDATED_DATE,
        #{category.tenantId} TENANT_ID
        FROM dual
        )
    </foreach>
    ) t
</insert>

(别名无所谓)
1.insert标签中://useGeneratedKeys=“false” 必须否则会报sql命令未正确结束;
2.标签中的(select … from dual);
3.当使用id自增时,insert 没有values ,标签中的separator的属性为"UNION ALL",将查询合并结果集。
4.若不需要自增,使用 insert into values ,标签中separator的属性为","
备注:
//ASSESS_TEMPLATE_CATEGORY_S.nextval 设置id自增 在外包一层循环为了 id自增
//id自增必须在外层 否则会出现 此处不允许序号错误

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值