mybatis父子表批量插入
<!--父子表批量插入 -->
<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父子表批量插入的更多相关文章
- MyBatis 使用 foreach 批量插入
MyBatis 使用 foreach 批量插入 参考博文 老司机学习MyBatis之动态SQL使用foreach在MySQL中批量插入 使用MyBatis一次性插入多条数据时候可以使用 <for ...
- mybatis oracle mysql 批量插入时的坑爹问题--需谨记
mybatis oracle mysql 批量插入一.oracle的批量插入方式insert into db(id, zgbh, shbzh) select '1', '2', '3' from du ...
- Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案
转自http://www.cnblogs.com/fnz0/p/5713102.html 不知道自己什么时候才有这种钻研精神- -. 1 背景 系统中需要批量生成单据数据到数据库表,所以采用 ...
- mybatis使用序列批量插入数据
mybatis只提供了单条数据的插入,要批量插入数据我们可以使用循环一条条的插入,但是这样做的效率太低下,每插入一条数据就需要提交一次,如果数据量几百上千甚至更多,插入性能往往不是我们能接受的,如下例 ...
- Dapper系列之一:Dapper的入门(多表批量插入)
Dapper介绍 简介: 不知道博客怎么去写去排版,查了好多相关博客,也根据自己做过项目总结,正好最近搭个微服务框架,顺便把搭建微服务框架所运用的知识都进行博客梳理,为了以后复习,就仔细琢 ...
- MyBatis操作Oracle批量插入 ORA-00933: SQL 命令未正确结束
最近在使用MyBatis操作Oracle数据库的时候,进行批量插入数据,思路是封装一个List集合通过Myabtis 的foreach标签进行循环插入,可是搬照Mysql的批量插入会产生 异常 ### ...
- mybatis+oracle的批量插入
// 批量插入,手动控制事务 SqlSession batchSqlSession = null; try { batchSqlSession = sqlSessionTemplate.getSqlS ...
- 关于 MyBatis MyBatis-Spring Jdbc 批量插入的各种比较分析
因为目前SME项目中编写了一套蜘蛛爬虫程序,所以导致插入数据库的数据量剧增.就项目中使用到的3种DB插入方式进行了一个Demo分析: 具体代码如下: 1: MyBatis 开启Batch方式,最普通的 ...
- mybatis支持oracle批量插入
问题:mysql使用mybatis批量插入时,通过foreach标签,将每条记录按照逗号","连接即可. 但是,oracle不支持. oracle支持如下写法: <inser ...
随机推荐
- 降噪自动编码器(Denoising Autoencoder)
起源:PCA.特征提取.... 随着一些奇怪的高维数据出现,比如图像.语音,传统的统计学-机器学习方法遇到了前所未有的挑战. 数据维度过高,数据单调,噪声分布广,传统方法的“数值游戏”很难奏效.数据挖 ...
- 洛谷 P1014 Cantor表 Label:续命模拟QAQ
题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … ...
- 20161003 NOIP 模拟赛 T2 解题报告
Weed duyege的电脑上面已经长草了,经过辨认上面有金坷垃的痕迹. 为了查出真相,duyege 准备修好电脑之后再进行一次金坷垃的模拟实验. 电脑上面有若干层金坷垃,每次只能在上面撒上一层高度为 ...
- /var/log目录下的20个Linux日志文件功能详解
如果愿意在Linux环境方面花费些时间,首先就应该知道日志文件的所在位置以及它们包含的内容.在系统运行正常的情况下学习了解这些不同的日志文件有助于你在遇到紧急情况时从容找出问题并加以解决. 以下介绍的 ...
- 1022. Digital Library (30)
A Digital Library contains millions of books, stored according to their titles, authors, key words o ...
- mvn生成runnablejar 的方法
主要讲3点,生成runnable jar 方法1是生成一个目录 方法2是直接一个runnable的jar 方法3是关于包含spring工程的情况 方法2和3其实是一致的 1.生成runnable j ...
- Struts的文件下载功能实现代码
Action: package com.tengfeiyang.action; import java.io.File; import java.io.FileInputStream; import ...
- jQuery获取Ajax函数的返回值
参考自: http://blog.csdn.net/crx05/article/details/7362252 function test() { var myText = ""; ...
- redis发布订阅
命令 : redis-cli打开一个客户端 Redis Psubscribe 命令订阅一个或多个符合给定模式的频道. 每个模式以 * 作为匹配符,比如 it* 匹配所有以 it 开头的频道( it.n ...
- 运行在VMware上的Linux虚拟机如何使用NAT模式连接物理机的外部网络
在VMware Workstation中,默认有3个虚拟交换机,分别是VMnet0(使用桥接网络).VMnet1(仅主机网络)和VMnet8(NAT网络). 首先说一下为什么要用NAT模式,如果你的物 ...