<!--父子表批量插入  -->
<insert id="insertBatch" parameterType="com.niwopay.dto.benifit.JFOrderVipDTO">
begin
insert into TB_JF_ORDER
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="orderId != null" >
ORDER_ID,
</if>
<if test="extOrderId != null" >
EXT_ORDER_ID,
</if>
<if test="deviceChannel != null" >
DEVICE_CHANNEL,
</if>
<if test="bizChannel != null" >
BIZ_CHANNEL,
</if>
<if test="orderType != null" >
ORDER_TYPE,
</if>
<if test="userId != null" >
USER_ID,
</if>
<if test="orderDate != null" >
ORDER_DATE,
</if>
<if test="orderAmount != null" >
ORDER_AMOUNT,
</if>
<if test="productAmount != null" >
PRODUCT_AMOUNT,
</if>
<if test="payAmount != null" >
PAY_AMOUNT,
</if>
<if test="fee != null" >
FEE,
</if>
<if test="sales != null" >
SALES,
</if>
<if test="freight != null" >
FREIGHT,
</if>
<if test="deliveryState != null" >
DELIVERY_STATE,
</if>
<if test="orderState != null" >
ORDER_STATE,
</if>
<if test="orderDesc != null" >
ORDER_DESC,
</if>
<if test="remark != null" >
REMARK,
</if>
<if test="createDate != null" >
CREATE_DATE,
</if>
<if test="payDate != null" >
PAY_DATE,
</if>
<if test="finishDate != null" >
FINISH_DATE,
</if>
<if test="returnDate != null" >
RETURN_DATE,
</if>
<if test="closeDate != null" >
CLOSE_DATE,
</if>
<if test="deliveryDate != null" >
DELIVERY_DATE,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="orderId != null" >
#{orderId,jdbcType=VARCHAR},
</if>
<if test="extOrderId != null" >
#{extOrderId,jdbcType=VARCHAR},
</if>
<if test="deviceChannel != null" >
#{deviceChannel,jdbcType=VARCHAR},
</if>
<if test="bizChannel != null" >
#{bizChannel,jdbcType=VARCHAR},
</if>
<if test="orderType != null" >
#{orderType,jdbcType=CHAR},
</if>
<if test="userId != null" >
#{userId,jdbcType=VARCHAR},
</if>
<if test="orderDate != null" >
#{orderDate,jdbcType=CHAR},
</if>
<if test="orderAmount != null" >
#{orderAmount,jdbcType=VARCHAR},
</if>
<if test="productAmount != null" >
#{productAmount,jdbcType=VARCHAR},
</if>
<if test="payAmount != null" >
#{payAmount,jdbcType=VARCHAR},
</if>
<if test="fee != null" >
#{fee,jdbcType=VARCHAR},
</if>
<if test="sales != null" >
#{sales,jdbcType=VARCHAR},
</if>
<if test="freight != null" >
#{freight,jdbcType=VARCHAR},
</if>
<if test="deliveryState != null" >
#{deliveryState,jdbcType=CHAR},
</if>
<if test="orderState != null" >
#{orderState,jdbcType=CHAR},
</if>
<if test="orderDesc != null" >
#{orderDesc,jdbcType=VARCHAR},
</if>
<if test="remark != null" >
#{remark,jdbcType=VARCHAR},
</if>
<if test="createDate != null" >
#{createDate,jdbcType=DATE},
</if>
<if test="payDate != null" >
#{payDate,jdbcType=DATE},
</if>
<if test="finishDate != null" >
#{finishDate,jdbcType=DATE},
</if>
<if test="returnDate != null" >
#{returnDate,jdbcType=DATE},
</if>
<if test="closeDate != null" >
#{closeDate,jdbcType=DATE},
</if>
<if test="deliveryDate != null" >
#{deliveryDate,jdbcType=DATE},
</if>
</trim>; insert into TB_JF_ORDER_VIP
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="orderId != null" >
ORDER_ID,
</if>
<if test="accountName != null" >
ACCOUNT_NAME,
</if>
<if test="cardNo != null" >
CARD_NO,
</if>
<if test="bankName != null" >
BANK_NAME,
</if>
<if test="province != null" >
PROVINCE,
</if>
<if test="city != null" >
CITY,
</if>
<if test="branch != null" >
BRANCH,
</if>
<if test="cpTradingStatus != null" >
CP_TRADING_STATUS,
</if>
<if test="bankCardId != null" >
BANK_CARD_ID,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="orderId != null" >
#{orderId,jdbcType=VARCHAR},
</if>
<if test="accountName != null" >
#{accountName,jdbcType=VARCHAR},
</if>
<if test="cardNo != null" >
#{cardNo,jdbcType=VARCHAR},
</if>
<if test="bankName != null" >
#{bankName,jdbcType=VARCHAR},
</if>
<if test="province != null" >
#{province,jdbcType=VARCHAR},
</if>
<if test="city != null" >
#{city,jdbcType=VARCHAR},
</if>
<if test="branch != null" >
#{branch,jdbcType=VARCHAR},
</if>
<if test="cpTradingStatus != null" >
#{cpTradingStatus,jdbcType=CHAR},
</if>
<if test="bankCardId != null" >
#{bankCardId,jdbcType=CHAR},
</if>
</trim>;
end;
</insert>

1、然后调用public int batchUpdate(final String statementName, final List<?> parameters);传入paramter参数的集合即可。

这种方式使用批量插入父子表。

2、不需要批量插入,但是插入一张主表的同时插入多张字表

  <insert id="insertQuotePlan" parameterType="com.taolue.api.interf.insurance.dto.QuotePlanDTO">
begin
insert into TB_CAR_INSURANCE_QUOTA_PLAN
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="QuotePlanID != null" >
QUOTA_PLAN_ID,
</if>
<if test="userId != null" >
USER_ID,
</if>
<if test="CityID != null" >
CITY_ID,
</if>
<if test="VipCarID != null" >
VIP_CAR_ID,
</if>
<if test="InsureStartDate != null" >
INSURE_START_DATE,
</if>
<if test="BusinessStartDate != null" >
BUSINESS_START_DATE,
</if>
<if test="createTime != null" >
CREATE_TIME,
</if>
<if test="itemKind != null" >
INTEM_KIND,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="QuotePlanID != null" >
#{QuotePlanID,jdbcType=VARCHAR},
</if>
<if test="userId != null" >
#{userId,jdbcType=VARCHAR},
</if>
<if test="CityID != null" >
#{CityID,jdbcType=VARCHAR},
</if>
<if test="VipCarID != null" >
#{VipCarID,jdbcType=VARCHAR},
</if>
<if test="InsureStartDate != null" >
#{InsureStartDate,jdbcType=VARCHAR},
</if>
<if test="BusinessStartDate != null" >
#{BusinessStartDate,jdbcType=VARCHAR},
</if>
<if test="createTime != null" >
#{createTime,jdbcType=DATE},
</if>
<if test="itemKind != null" >
#{itemKind,jdbcType=CLOB},
</if>
</trim>;
<if test="quotePriceList != null and quotePriceList.size>0" >
<foreach collection="quotePriceList" item="item" index="index">
insert into TB_CAR_INSURANCE_QUOTA_PRICE (quota_id,quota_plan_id,company_id,company_name,company_code) values (#{item.quotaId},#{QuotePlanID},#{item.companyId},#{item.companyName},#{item.companyCode});
</foreach>
</if>
end;
</insert>

mybatis父子表批量插入的更多相关文章

  1. MyBatis 使用 foreach 批量插入

    MyBatis 使用 foreach 批量插入 参考博文 老司机学习MyBatis之动态SQL使用foreach在MySQL中批量插入 使用MyBatis一次性插入多条数据时候可以使用 <for ...

  2. mybatis oracle mysql 批量插入时的坑爹问题--需谨记

    mybatis oracle mysql 批量插入一.oracle的批量插入方式insert into db(id, zgbh, shbzh) select '1', '2', '3' from du ...

  3. Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案

    转自http://www.cnblogs.com/fnz0/p/5713102.html 不知道自己什么时候才有这种钻研精神- -. 1      背景 系统中需要批量生成单据数据到数据库表,所以采用 ...

  4. mybatis使用序列批量插入数据

    mybatis只提供了单条数据的插入,要批量插入数据我们可以使用循环一条条的插入,但是这样做的效率太低下,每插入一条数据就需要提交一次,如果数据量几百上千甚至更多,插入性能往往不是我们能接受的,如下例 ...

  5. Dapper系列之一:Dapper的入门(多表批量插入)

    Dapper介绍  简介:      不知道博客怎么去写去排版,查了好多相关博客,也根据自己做过项目总结,正好最近搭个微服务框架,顺便把搭建微服务框架所运用的知识都进行博客梳理,为了以后复习,就仔细琢 ...

  6. MyBatis操作Oracle批量插入 ORA-00933: SQL 命令未正确结束

    最近在使用MyBatis操作Oracle数据库的时候,进行批量插入数据,思路是封装一个List集合通过Myabtis 的foreach标签进行循环插入,可是搬照Mysql的批量插入会产生 异常 ### ...

  7. mybatis+oracle的批量插入

    // 批量插入,手动控制事务 SqlSession batchSqlSession = null; try { batchSqlSession = sqlSessionTemplate.getSqlS ...

  8. 关于 MyBatis MyBatis-Spring Jdbc 批量插入的各种比较分析

    因为目前SME项目中编写了一套蜘蛛爬虫程序,所以导致插入数据库的数据量剧增.就项目中使用到的3种DB插入方式进行了一个Demo分析: 具体代码如下: 1: MyBatis 开启Batch方式,最普通的 ...

  9. mybatis支持oracle批量插入

    问题:mysql使用mybatis批量插入时,通过foreach标签,将每条记录按照逗号","连接即可. 但是,oracle不支持. oracle支持如下写法: <inser ...

随机推荐

  1. [知识点]KMP算法

    // 此博文为迁移而来,写于2015年5月24日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102w1iw.html 1.前 ...

  2. 优化特性(Attribute)性能

    通过这篇文章,不仅可以了解到Attribute的工作原理,还可以了解到GetcustomeAttribute是的内部执行流程.最后,你会看到,使用缓存机制可以极大的优化反射Attribute的性能. ...

  3. [WP8.1UI控件编程]Windows Phone XAML页面的编译

    1.1.2 XAML页面的编译 Windows Phone的应用程序项目会通过Visual Studio完成XAML页面的编译,在程序运行时会通过直接链接操作加载和解析XAML,将XAML和过程式代码 ...

  4. 『备忘』HttpWebRequest 在 POST 提交时, 标头(Headers)丢失原因

    近来研究 HttpWebRequest —— 辅助类完成时,POST JSON数据 总会 丢失标头(Headers). HttpWebRequest POST JSON数据,分如下几步: > 将 ...

  5. URAL 1501. Sense of Beauty(记忆化搜索)

    题目链接 本来暴力写个TLE了,加上记忆化就A了. #include <cstring> #include <cstdio> #include <string> # ...

  6. Java_动态加载

    Java类动态加载(一)——java源文件动态编译为class文件最近在做java动态加载这方面的工作,起初也遇到了很多困难.网上关于这方便的东西很零散,为了便于日后回过头来再看,于是我将这几天的心得 ...

  7. JSP 页面缓存以及清除缓存

    一.概述 缓存的思想可以应用在软件分层的各个层面.它是一种内部机制,对外界而言,是不可感知的. 数据库本身有缓存,持久层也可以缓存.(比如:hibernate,还分1级和2级缓存) 业务层也可以有缓存 ...

  8. 处理海量数据的高级排序之——堆排序(C++)

    在面对大数据量的排序时(100W以上量级数据),通常用以下三种的排序方法效率最高O(nlogn):快速排序.归并排序,堆排序.在这个量级上,其他冒泡,选择,插入等简单排序已经无法胜任,效率极低,跟前面 ...

  9. createElement,createTextNode,appendChild

    <html> <head> <meta charset="UTF-8"> <title></title> <scr ...

  10. HDU3177 贪心

    Crixalis's Equipment Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...