mybatis批量插入和批量更新
批量插入数据使用的sql语句是:
- insert into table (aa,bb,cc) values(xx,xx,xx),(oo,oo,oo)
mybatis中mapper.xml的代码如下:

- <!-- 批量插入数据 -->
- <insert id="insertBatch" parameterType="java.util.List"
- useGeneratedKeys="true">
- <selectKey resultType="long" keyProperty="id" order="AFTER">
- SELECT
- LAST_INSERT_ID()
- </selectKey>
- insert into wd_solr
- (fayu_id, tablename,
- name,logo,description,section_no,look_count,favorite_count,create_uid,create_time,update_time,timestamp)
- values
- <foreach collection="list" item="wdSolr" index="index"
- separator=",">
- (
- #{wdSolr.fayuId},#{wdSolr.tablename},#{wdSolr.name},#{wdSolr.logo},
- #{wdSolr.description},#{wdSolr.sectionNo},#{wdSolr.lookCount},#{wdSolr.favoriteCount},
- #{wdSolr.createUid},#{wdSolr.createTime},#{wdSolr.updateTime},#{wdSolr.timestamp}
- )
- </foreach>
- </insert>

批量更新数据使用的sql语句是:

- UPDATE table
- SET aa = CASE id
- WHEN 1 THEN 'oo'
- WHEN 2 THEN 'pp'
- WHEN 3 THEN 'qq'
- END
- ,SET bb = CASE id
- WHEN 1 THEN 'xx'
- WHEN 2 THEN 'yy'
- WHEN 3 THEN 'zz'
- END
- WHERE id IN (1,2,3)

上面这一条mysql语句可以更新多条记录,mybatis中mapper.xml的代码如下:

- <!-- 批量更新数据 -->
- <update id="updateBatch">
- update wd_solr set
- name =
- <foreach collection="list" item="wdSolr" index="index"
- separator=" " open="case id" close="end">
- when #{wdSolr.id} then
- #{wdSolr.name}
- </foreach>
- ,logo =
- <foreach collection="list" item="wdSolr" index="index"
- separator=" " open="case id" close="end">
- when #{wdSolr.id} then
- #{wdSolr.logo}
- </foreach>
- ,timestamp =
- <foreach collection="list" item="wdSolr" index="index"
- separator=" " open="case id" close="end">
- when #{wdSolr.id} then #{wdSolr.timestamp}
- </foreach>
- where id in
- <foreach collection="list" item="wdSolr" index="index"
- separator="," open="(" close=")">
- #{wdSolr.id}
- </foreach>
- </update>

mybatis批量插入和批量更新的更多相关文章
- mybatis+mysql批量插入和批量更新、存在及更新
mybatis+mysql批量插入和批量更新 一.批量插入 批量插入数据使用的sql语句是: insert into table (字段一,字段二,字段三) values(xx,xx,xx),(oo, ...
- spring data jpa开启批量插入、批量更新
spring data jpa开启批量插入.批量更新 原文链接:https://www.cnblogs.com/blog5277/p/10661096.html 原文作者:博客园--曲高终和寡 *** ...
- MongoDB与传统数据库的使用区别——批量插入与批量查询
我在百X知道上回答问题时经常遇到类似与这样的问题:MongoDB有没有像MySQL一样的ODBC驱动?MongoDB能不能像MySQL一样获取字段名称或类型. 我的回答是:不行,因为MongoDB不是 ...
- oracle 在xml中批量插入,批量修改及多组条件查询
最近公司用ibatis开发项目,本来可以用存储过程处理批量插入,批量修改及多组条件查询:但由于使用模块相对较小,暂时就在xml中配置,以前没有在xml做过类似处理,有必要记录一下:好了,代码如下: & ...
- mybatis+mysql批量插入和批量更新
一.批量插入 批量插入数据使用的sql语句是: insert into table (字段一,字段二,字段三) values(xx,xx,xx),(oo,oo,oo) mybatis中mapper.x ...
- Mybatis 批量插入、批量更新
合理的使用批量插入.更新对性能优化有很大的作用,速度明显快了N倍. 要注意数据库连接串后面要新增:&allowMultiQueries=true,表示一个sql ...
- Mybatis批量插入、批量更新
合理的使用批量插入.更新对优化有很大的作用,速度明显快了N倍. 数据库连接串后面要新增:&allowMultiQueries=true 批量插入的最大限制主要是看你整条sql占用的大小,所以可 ...
- mybatis Oracle 批量插入,批量更新
传入的参数只要是list类型的参数就行了..............1.批量插入<insert id="insertBatch" parameterType="ja ...
- mybatis的插入与批量插入的返回ID的原理
目录 背景 底层调用方法 单个对象插入 列表批量插入 完成 背景 最近正在整理之前基于mybatis的半ORM框架.原本的框架底层类ORM操作是通过StringBuilder的append拼接的,这次 ...
随机推荐
- [NOI2003],[AHOI2006]文本编辑器
嘟嘟嘟 [NOI2003]的其实就是一个板子--所以我就不说啥了. 唯一需要注意的是读入字符(哎--):题中说"中间可能有空格,请忽略"的意思是要在程序里特判掉,不是不管他-- 输 ...
- 关于html的a标签的target="__blank "的安全漏洞问题
使用场景:最近项目中使用一个a标签的 target="__blank "链接跳转 页面,打开一个新的 pdf文件(或者外部的一个网页),然后在chrome浏览器中快速的滑动的时候, ...
- ubuntu RPLIDAR A2的使用
RPLIDAR是由RoboPeak Team,SlamTec公司开发的低成本2D LIDAR解决方案.它可以扫描6度半径内的360°环境. RPLIDAR的输出非常适合构建地图,做slam或构建3D模 ...
- SSM+BootStrap增删改查,以及头像上传
先看界面 点击编辑之后 具体代码请往下看 一.jsp界面 <%@ page language="java" contentType="text/html; char ...
- SQL2005中的事务与锁定(九)-(2)- 转载
-------------------------------------------------------------------------- Author : HappyFlyStone -- ...
- SQL Server CTE 递归查询全解(转载)
在TSQL脚本中,也能实现递归查询,SQL Server提供CTE(Common Table Expression),只需要编写少量的代码,就能实现递归查询,本文详细介绍CTE递归调用的特性和使用示例 ...
- Luogu1344 追查坏牛奶 最小割
题目传送门 题意:给出$N$个节点$M$条边的有向图,边权为$w$,求其最小割与达到最小割的情况下割掉边数的最小值.$N \leq 32,M \leq 1000,w\leq 2 \times 10^6 ...
- React-UI组件和容器组件
UI组件负责页面的渲染,又叫傻瓜组件. 容器组件负责逻辑,又叫聪明组件. 当一个组件只有render函数的时候,就可以用无状态组件的形式来定义这个组件.无状态组件怎么定义呢?其实就是一个函数,接受pr ...
- b/s程序真的很方便部署吗
公共应用当然是web系统,这个不说,我说的是企业应用. 最近一些年在企业开发中都提倡web应用,仿佛winform可以结束了,但真的这样吗?最近几天的真实经历如下: 我们部门新开发了一套系统要上线,由 ...
- Ionic 添加java原生代码 报support.v4不存在问题
在做Ionic Hybird app开发过程中不可避免的使用一些原生代码的问题,那么怎么添加原生代码呢? 答案很简单:1.将原生代码直接拷贝到项目下的 你的项目名/platforms/android/ ...