MyBatis-批量update
MyBatis-批量update
1、循环update语句
通过循环,依次执行update语句,效率较低
MyBatis写法:
<update id="updateCarrierWayStatus" parameterType="java.util.List"><foreach collection="list" item="item" index="index" separator=";">UPDATE order_main_info<set><if test="item != null">carrier_way_flag = #{item.carrierWayFlag},remarks = #{item.remarks}</if></set>WHERE customer_order_no = #{item.customerOrderNo}</foreach>
</update>
这个方式需要注意两点:
数据连接需要加一个允许批量执行的配置 &allowMultiQueries=true
list不可以为空,会报空语句错误
2、利用Case When
利用case when 只有一条update执行语句
MyBatis写法:
<update id="updateCarrierWayStatus" parameterType="java.util.List">update order_main_info<trim prefix="set" suffixOverrides=","><trim prefix="carrier_way_flag = case" suffix="end,"><foreach collection="list" item="item" index="index"><if test="item.carrierWayFlag != null">when customer_order_no = #{item.customerOrderNo} then #{item.carrierWayFlag}</if></foreach></trim><trim prefix="remarks = case" suffix="end,"><foreach collection="list" item="item" index="index"><if test="item.remarks != null">when customer_order_no = #{item.customerOrderNo} then #{item.remarks}</if></foreach></trim></trim>where customer_order_no in<foreach collection="list" index="index" item="item" separator="," open="(" close=")">#{item.customerOrderNo,jdbcType=VARCHAR}</foreach></update>
执行效果
update order_main_info set carrier_way_flag = case when customer_order_no = ? then ? end, remarks = case when customer_order_no = ? then ? end where customer_order_no in ( ? )
MyBatis-批量update相关推荐
- MYBATIS 批量update 报错的问题
update table set column='...' where id in (1,2,3)l 这样的sql就可以了.Mybatis中这样写就行 <update id="batc ...
- Mybatis批量update修改实例
UserMapper.xml 配置: <sql id="condition4Update"><where><if test="orgNo ! ...
- mybatis批量插入(insert)和批量更新(update)
文章目录 一.Mybatis批量插入 二.批量更新 前言:这两天在做mybatis批量插入和更新的时候,对这块不是很清楚,所以今天写篇文章,巩固加深印象. 一.Mybatis批量插入 批量插入的sql ...
- mybatis mysql 批量更新_mysql批量update更新,mybatis中批量更新操作
在日常开发中,有时候会遇到批量更新操作,这时候最普通的写法就是循环遍历,然后一条一条地进行update操作.但是不管是在服务端进行遍历,还是在sql代码中进行遍历,都很耗费资源,而且性能比较差,容易造 ...
- mybatis java传参_[Java教程]Mybatis批量和传参
[Java教程]Mybatis批量和传参 0 2014-07-31 04:00:12 MyBatis中批量插入 方法一: resultType="java.lang.String" ...
- MyBatis批量增删改的另外一种思路(推荐)
零.传统拼接SQL语句的弊端 传统上利用Mybatis进行批量操作的方式本质来说是拼接SQL语句,然后交给底层执行,如之前博文而言. 其实这种方式是存在弊端的: 1. SQL语句可能会过长,DB的引擎 ...
- Mybatis批量更新数据
Mybatis批量更新数据 第一种方式 [html] view plaincopy print? <update id="updateBatch" parameterType ...
- Mybatis批量更新转
Mybatis批量更新 批量操作就不进行赘述了.减少服务器与数据库之间的交互.网上有很多关于批量插入还有批量删除的帖子.但是批量更新却没有详细的解决方案. 实现目标 这里主要讲的是1张table中.根 ...
- mybatis批量更新及其效率问题
mybatis批量更新及其效率问题 一:背景 注意: 第一种: 第二种: 二:批量更新的方式总结: 第一种: 第二种: 三:总结: 最近,负责公司一些旧数据的批量整理和清洗工作,在网上寻找了两种myb ...
- mybatis批量更新 mysql 报错,Mybatis批量更新报错问题
下面给大家介绍mybatis批量更新报错问题, allowMultiQueries=true 后来发现是jdbc链接没有加允许批量更新操作的参数引起的,不加会报badsql,mysql版的mybati ...
最新文章
- jQuery--AJAX传递xml
- Python之PIL之绘图:基于Python的PIL库绘制各种图形、添加文字等
- c 命令导出数据到mysql_MySQL命令行导出数据库
- PWN-PRACTICE-BUUCTF-8
- ntfs安全权限和共享权限的区别
- 整合mybatis3.2.2跟spring3.0.1
- java控制进程_⑨进程控制
- VMware SD-WAN 修复6个漏洞,可关闭整个企业网络
- Aqua - Mac OS X平台的用户界面(user interface)
- CodeForces 598A Tricky Sum
- 计算机程序员crc算法,CRC-8校验原理及软件实现
- 使用Java解牛客网六一儿童节
- PTA习题【python】 6-8 jmu-python-发牌
- 【数据结构和算法】赫夫曼树 | 实战演练(二)
- 数学建模学习1.22——多元回归分析
- 介绍部电影“Sicko”,迈克尔摩尔拍摄的抨击美国医疗体制的纪录片
- 从为何“万事开头难”谈大型网站应用设计——运用冥想
- 第十一章 会打电话 天涯变咫尺 不会打电话 咫尺变天涯
- android 5.0 按钮颜色,Android 5.0系统默认颜色
- 我的自制h1940红外遥控增强器(含软件及硬件制作方法)