<!--父子表批量插入  -->
<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. HDU5331 : Simple Problem

    因为是二分图,所以最大独立集$=$总点数$-$最大匹配. 因为是树,所以具有贪心性质,设$f_i$表示$i$是否与其孩子匹配,$a_i$表示$i$的孩子里$f$为$0$的个数,则$f_i=[a_i&g ...

  2. BZOJ4569 : [Scoi2016]萌萌哒

    建立ST表,每层维护一个并查集. 每个信息可以拆成两条长度为$2$的幂次的区间相等的信息,等价于ST表里两对点的合并. 然后递归合并,一旦发现已经合并过了就退出. 因为一共只会发生$O(n\log n ...

  3. Iterable(迭代器)的用法

    一.前言 在开发中,经常使用的还是for-each循环来遍历来Collection,不经常使用Iterable(迭代器)的,下面记录一下terable是一般用法: 二.说明 迭代器是一种设计模式,它是 ...

  4. hdu1251 统计难题 字典树

    Problem Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己 ...

  5. Android -- ImageView通过Bitmap得到网上的图片资源

    1. 效果图

  6. ubuntu 装机及装机以后干的事情

    一.装系统 下载ubuntu镜像 ubuntu 16.04 镜像下载(linux公社) 安装unetbootin (u盘启动盘制作工具) sudo apt-get install unetbootin ...

  7. FS_11C14温湿度传感器(二)

    作者:刘老师,华清远见嵌入式学院讲师. 在FS_11C14平台DHT11传感器程序: /******************************************************** ...

  8. 基于MINA构建简单高性能的NIO应用

    mina是非常好的C/S架构的java服务器,这里转了一篇关于它的使用感受. 前言MINA是Trustin Lee最新制作的Java通讯框架.通讯框架的主要作用是封装底层IO操作,提供高级的操作API ...

  9. VS开发好用的扩展

    VS开发好用的扩展(转) 转自:http://www.haogongju.net/art/1977373 首先为大家介绍一下开发字体,做程序开发,代码可读性,在侧面也能帮助开发提高效率,所以给大家介绍 ...

  10. Java读取Execl表格数据

    在前面提到用java代码新建一个Execl 表格并添加数据到表格中, 这次写了一个读取Execl表格数据并添加导数据库中的案列 给定对方一个Execl模板表格,如果导入的Execl表格和预订的表格不相 ...