mybatis 注解写法 多层嵌套foreach,调用存储过程,批量插入数据
    @Select("<script>" +
   "DECLARE @edi_Invoice_Details edi_Invoice_Details;" +
   "DECLARE @edi_Invoice_OrderItem edi_Invoice_OrderItem;" +
   "INSERT INTO @edi_Invoice_Details (" +
    "oldso,so,po,invoiceTaxNo,invoiceType,invoiceTitle,\n" +
    "invoiceAddress,invoiceState,invoiceTaxRate,invoiceContent,\n" +
    "invoiceRatePrice,invoiceNoTaxPrice,invoiceId,invoiceDate,invoiceTaxPrice,invoiceNO,invoiceCode" +
    " ) " +
    "VALUES " +
    "<foreach collection=\"ediInvoiceDetails\" item=\"ediInvoiceDetail\" index=\"index\" separator=\",\" close=\";\">" +
    "( " +
      "#{ediInvoiceDetail.oldso},#{ediInvoiceDetail.so},#{ediInvoiceDetail.po},#{ediInvoiceDetail.invoiceTaxNo},#{ediInvoiceDetail.invoiceType},#{ediInvoiceDetail.invoiceTitle}," +
      "#{ediInvoiceDetail.invoiceAddress},#{ediInvoiceDetail.invoiceState},#{ediInvoiceDetail.invoiceTaxRate},#{ediInvoiceDetail.invoiceContent},#{ediInvoiceDetail.invoiceRatePrice}," +
      "#{ediInvoiceDetail.invoiceNoTaxPrice},#{ediInvoiceDetail.invoiceId},CONVERT(DATETIME,#{ediInvoiceDetail.invoiceDate},105),#{ediInvoiceDetail.invoiceTaxPrice},"+
      "#{ediInvoiceDetail.invoiceNO},#{ediInvoiceDetail.invoiceCode}"+
     " )" +
      "</foreach> " +
      "<foreach collection=\"ediInvoiceDetails\" item=\"ediInvoiceDetail\" index=\"index\" open=\"begin\" close=\";end;\" separator=\";\">" +
      "INSERT INTO @edi_Invoice_OrderItem ( " +
      "invoiceDetailsId, so, bomCode, agreementPrice,productAmount, productName " +
      ") " +
      "VALUES " +
      "<foreach collection=\"ediInvoiceDetail.sodetails\" item=\"sodetail\" index=\"index\" separator=\",\">( " +
       "#{sodetail.invoiceDetailsId},#{sodetail.so},#{sodetail.bomCode},#{sodetail.agreementPrice},#{sodetail.productAmount},#{sodetail.productName} "+
       " )</foreach></foreach> " +
      "EXEC up_EDI_Sync_SaveEDIInvoiceDetails @edi_Invoice_Details,@edi_Invoice_OrderItem"+
     "</script>")
     @Options(statementType = StatementType.CALLABLE)
     void saveEdiInvoiceDetails(@Param("ediInvoiceDetails") List<EDIInvoiceDetails> ediInvoiceDetails);
mybatis 注解写法 多层嵌套foreach,调用存储过程,批量插入数据的更多相关文章
- PG数据库创建并执行存储过程批量插入数据
		
记录一下PG数据库创建并执行存储过程批量插入数据的SQL: create or replace function addId() returns boolean AS $BODY$ declare i ...
 - sqlserver存储过程批量插入数据
		
在系统中经常会遇到向数据库中批量插入数据情况,存储过程中没有数组,只有通过字符串分割循环插入,下面是一个本人研究的一个例子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 c ...
 - mysql应用存储过程批量插入数据
		
--批量插入数据的sql语句 delimiter $$ DROP PROCEDURE IF EXISTS `test.sp_insert_batch` $$ CREATE DEFINER =`root ...
 - Oracle  存储过程批量插入数据
		
oracle 存储过程批量插入大量数据 declare numCount number; userName varchar2(512); email varchar2(512); markCommen ...
 - mysql利用存储过程批量插入数据
		
最近需要测试一下mysql单表数据达到1000W条以上时增删改查的性能.由于没有现成的数据,因此自己构造,本文只是实例,以及简单的介绍. 首先当然是建表: [sql]view plaincopy CR ...
 - 使用Oracle的存储过程批量插入数据
		
原文地址:http://www.cnblogs.com/liaoyu/p/oracle-procedure-batch-insert.html 作者:L君还在说之乎者也 最近在工作中,需要使用生成一些 ...
 - mysql存储过程批量插入数据
		
DROP TABLE IF EXISTS TeachersInfo; CREATE TABLE TeachersInfo ( id INT NOT NULL AUTO_INCREMENT, teach ...
 - postgres 使用存储过程批量插入数据
		
參考资料(pl/pgsql 官方文档): http://www.postgresql.org/docs/9.3/static/plpgsql.html create or replace functi ...
 - mybatis foreach批量插入数据:Oracle与MySQL区别
		
mybatis foreach批量插入数据:Oracle与MySQL不同点: 主要不同点在于foreach标签内separator属性的设置问题: separator设置为","分 ...
 
随机推荐
- python的学习之路(三)
			
一.set集合#!/usr/bin/env python# *_*coding:utf-8 *_*# Author: harson old_dict = { "#1": {'hos ...
 - Leetcode 172.阶乘后的零
			
阶乘后的零 给定一个整数 n,返回 n! 结果尾数中零的数量. 示例 1: 输入: 3 输出: 0 解释: 3! = 6, 尾数中没有零. 示例 2: 输入: 5 输出: 1 解释: 5! = 120 ...
 - HDU 2815 扩展baby step giant step 算法
			
题目大意就是求 a^x = b(mod c) 中的x 用一般的baby step giant step 算法会超时 这里参考的是http://hi.baidu.com/aekdycoin/item/2 ...
 - Django开发:(3.1)ORM:单表操作
			
MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需 ...
 - [K/3Cloud] 隐藏菜单后,如何在插件间接的调用隐藏菜单的操作
			
使用场景: 动态表单里面挂了个单据的序时薄,序时薄有菜单,但是把序时薄的工具栏隐藏了.新增,修改全部动态表单自己写.删除和过滤我想间接调用下隐藏的序时薄的删除和过滤按钮的操作.在插件里如何实现? 答: ...
 - UVA 140_Bandwidth
			
题意: 定义一个结点的带宽是其距离所有相连结点的最远距离,一个图的带宽是图中所有结点带宽的最小值.给出一个图中各个结点的相邻情况,要求写出一个结点的排列,使得其所构成的图带宽最小. 分析: 枚举全排列 ...
 - POJ3728 The merchant解题报告
			
Description There are N cities in a country, and there is one and only one simple path between each ...
 - list循环删除单个元素
			
摘自https://www.cnblogs.com/pcheng/p/5336903.html JAVA中循环删除list中元素的方法总结 JAVA中循环遍历list有三种方式for循环.增强for循 ...
 - Vue.js组件的通信之父组件向子父组件的通信
			
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
 - APPLE STORE
			
直接在设置中,使用查看APPLE ID是无法更改的,现在必须要有所在区域的信用卡信息,支付方式无法像以前一样选择“无”. 查询后发现,有人说icloud3.0,即这个旧版的可以进行更改,于是下载. 但 ...