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

<insert id="saveTemplateCategory" useGeneratedKeys="false" parameterType="***">
                                 //useGeneratedKeys="false" 必须否则会报sql命令未正确结束
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 (
     //ASSESS_TEMPLATE_CATEGORY_S.nextval 设置id自增 在外包一层循环为了 id自增
     //id自增必须在外层 否则会出现 此处不允许序号错误
<foreach collection="list" item="category" separator="UNION all">
                             //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.SQL中没有VALUES;
2.<foreach>标签中的(select ..... from dual);
3.<foreach>标签中的separator的属性为"UNION ALL",将查询合并结果集。
4.若不需要自增,使用 insert into values ,<foreach>标签中separator的属性为","

转载于:https://www.cnblogs.com/java-suwei0809/p/10672211.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值