一、mybatis执行批量更新batch update 的方法(mysql数据库)

1、数据库连接必须配置:&allowMultiQueries=true(切记一定要加上这个属性,否则会有问题,切记!切记!切记!)
  我的配置如下:jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
2、批量修改并加判断条件(修改字段可选)
<!-- 批量更新 -->
<update id="updateMatchs" parameterType="java.util.List">
<foreach collection="matchs" item="item" index="index" open="" close="" separator=";">
update t_match
<set>
<if test="item.title !=null">
TITLE = #{item.title,jdbcType=VARCHAR},
</if>
<if test="item.homeScore !=null">
HOME_SCORE = #{item.homeScore,jdbcType=INTEGER},
</if>
<if test="item.visitScore !=null">
VISTT_SCORE = #{item.visitScore,jdbcType=INTEGER},
</if>
<if test="item.liveSource !=null">
LIVE_SOURCE = #{item.liveSource,jdbcType=VARCHAR},
</if>
<if test="item.liveURL !=null">
LIVE_URL = #{item.liveURL,jdbcType=VARCHAR},
</if>
<if test="item.isHotMatch !=null">
IS_HOT_MATCH = #{item.isHotMatch,jdbcType=VARCHAR}
</if>
</set>
where HOME_TEAM_ID = #{item.homeTeamId,jdbcType=VARCHAR} and
VISIT_TEAM_ID = #{item.visitTeamId,jdbcType=VARCHAR} and
MATCH_TIME = #{item.matchTime,jdbcType=BIGINT}
</foreach>
</update>
3、java 接口
  /**
* 批量修改赛程
*
* @param matchs
* @throws DaoException
*/
void updateMatchs(@Param(value = "matchs")List<MatchBasic> matchs);

二、mybatis执行批量更新batch update 的方法(oracle数据库)

1、批量修改并加判断条件(修改字段可选)

<update id="batchUpdateSplitSinglePickCurrency" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" open="begin" close=";end;" separator=";">
UPDATE ZC_TR_MULTI_ORDER_CURRENCY
<set>
<if test="item.sysCorderCode != null">
SYS_CORDER_CODE = #{item.sysCorderCode,jdbcType=VARCHAR},
</if> <if test="item.sysPorderCode != null">
SYS_PORDER_CODE = #{item.sysPorderCode,jdbcType=VARCHAR},
</if> <if test="item.bizPorderCode != null">
BIZ_PORDER_CODE = #{item.bizPorderCode,jdbcType=VARCHAR},
</if> <if test="item.originalOrderCode != null">
ORIGINAL_ORDER_CODE = #{item.originalOrderCode,jdbcType=VARCHAR},
</if> <if test="item.splitUserId != null">
SPLIT_USER_ID = #{item.splitUserId,jdbcType=VARCHAR},
</if> <if test="item.createDate != null">
CREATE_DATE = #{item.createDate},
</if> <if test="item.updateDate != null">
UPDATE_DATE = #{item.updateDate},
</if>
</set>
where id = #{item.id,jdbcType=VARCHAR}
</foreach>
</update>

2、java接口

  /**
* @Desc : 批量更新大批量子订单详情信息
* @Author : ZRP
* @Date : 2018/1/26 15:24
*/
int batchUpdateSplitSinglePickCurrency(@Param(value = "list") List<MultiOrderCurrency> list) throws Exception;
PS:一定要注意文中标红色的地方

170829、mybatis使用oracle和mybatis中批量更新的更多相关文章

  1. Myabtis中批量更新update多字段

    在mybatis中批量更新多个字段 推荐使用如下操作: 方式1:在Dao层接口中: void updateBatch(@Param("list")List<Student&g ...

  2. 从源码的角度看 React JS 中批量更新 State 的策略(下)

    这篇文章我们继续从源码的角度学习 React JS 中的批量更新 State 的策略,供我们继续深入学习研究 React 之用. 前置文章列表 深入理解 React JS 中的 setState 从源 ...

  3. Mybatis对oracle数据库进行foreach批量插入操作

    MySQL支持的语法 INSERT INTO `tableX` ( `a`, `b`, `c`, `d`, `e` ) VALUES <foreach collection ="lis ...

  4. Mybatis 针对ORACLE和MYSQL的批量插入与多参数批量删除

    今天利用Mybatis的<for each>标签做oracle的批量插入数据时,发现和MySQL数据库有区别.在此记录下,以防之后再踩坑. 一.批量插入: 1.controller: /* ...

  5. mysql批量update更新,mybatis中批量更新操作

    在日常开发中,有时候会遇到批量更新操作,这时候最普通的写法就是循环遍历,然后一条一条地进行update操作.但是不管是在服务端进行遍历,还是在sql代码中进行遍历,都很耗费资源,而且性能比较差,容易造 ...

  6. mybatis中批量更新的问题

    问题:使用mybatis在执批量更新操作时,一直报错执行失败 解决方法: 首先打印了SQL语句,发现SQL语句拿出来执行没问题,也可以批量执行.SQL没问题,应该是配置的问题. 在网上查询和很多资料, ...

  7. .Net中批量更新或添加数据

    方法一:使用SqlBulkCopy实现批量更新或添加数据. SqlBulkCopy类一般只能用来将数据批量插入打数据库中,如果数据表中设置了主键,出现重复数据的话会报错,如果没有设置主键,那么将会添加 ...

  8. 从源码的角度看 React JS 中批量更新 State 的策略(上)

    在之前的文章「深入理解 React JS 中的 setState」与 「从源码的角度再看 React JS 中的 setState」 中,我们分别看到了 React JS 中 setState 的异步 ...

  9. oracle 在xml中批量插入,批量修改及多组条件查询

    最近公司用ibatis开发项目,本来可以用存储过程处理批量插入,批量修改及多组条件查询:但由于使用模块相对较小,暂时就在xml中配置,以前没有在xml做过类似处理,有必要记录一下:好了,代码如下: & ...

随机推荐

  1. ckeditor 上传图片解决跨域问题

    前后端分离ckeditor跨域问题处理 这个跨域问题很常见,特别是前后端分离的情况,IP地址不同导致了页面跨域,具体原因大多是因为前端ifame问题 分析 ckeditor插件里config.js需要 ...

  2. [Java] LinkedHashMap 源码简要分析

    特点 * 各个元素不仅仅按照HashMap的结构存储,而且每个元素包含了before/after指针,通过一个头元素header,形成一个双向循环链表.使用循环链表,保存了元素插入的顺序. * 可设置 ...

  3. ios mac 对照片进行JPEG压缩

    ios mac 对照片进行JPEG压缩 1. 在iOS上可以使用 API UIImageJPEGRepresentation 对照片数据进行JPEG压缩: 我们知道iOS其实是MAC OS 的移植,那 ...

  4. C# System.Threading.ReaderWriterLockSlim

    using System; using System.Threading; using System.Threading.Tasks; using System.Collections.Generic ...

  5. node.js中的框架

    node.js中的框架 载自: http://nodeframework.com/ MVC frameworks Sinatra-like These frameworks offer rich co ...

  6. HTML5中的History对象

    HTML5标准之前 基本操作 1.forward(number) 加载histroy列表中的下一个URL 2.back(number) 加载histroy列表中的上一个URL 3.go(number) ...

  7. 【emWin】例程三十一:窗口对象——Multipage

    简介: ULTIPAGE 类似于笔记本中的分隔卡或文件柜中的标签.通过使用MULTIPAGE 小工具,应用程序可为窗口或对话框的相同区域定义多个页面.每个页面包含特定 类型的信息或用户选择相应页面时应 ...

  8. C++ 智能指针四

    /* 智能指针enable_shared_from_this模板类使用 */ #include <iostream> #include <string> #include &l ...

  9. Go指南练习_错误

    源地址 https://tour.go-zh.org/methods/20 一.题目描述 从之前的练习中复制 Sqrt 函数,修改它使其返回 error 值. Sqrt 接受到一个负数时,应当返回一个 ...

  10. linux 网络配置 (配置/etc/sysconfig/network-scripts/ifcfg-ethx)

    背景 需要往服务器上安装软件:并且像maven代理的话必须连接公网.首先配置了网关,发现可以通过ip访问公网了,在配置了DNS可以通过域名访问公网了 实例 配置linux 可以上网的操作 vi /et ...