批量插入数据使用的sql语句是:

  1. insert into table (aa,bb,cc) values(xx,xx,xx),(oo,oo,oo)

mybatis中mapper.xml的代码如下:

  1.   <!-- 批量插入数据 -->
  2. <insert id="insertBatch" parameterType="java.util.List"
  3. useGeneratedKeys="true">
  4. <selectKey resultType="long" keyProperty="id" order="AFTER">
  5. SELECT
  6. LAST_INSERT_ID()
  7. </selectKey>
  8. insert into wd_solr
  9. (fayu_id, tablename,
  10. name,logo,description,section_no,look_count,favorite_count,create_uid,create_time,update_time,timestamp)
  11. values
  12. <foreach collection="list" item="wdSolr" index="index"
  13. separator=",">
  14. (
  15. #{wdSolr.fayuId},#{wdSolr.tablename},#{wdSolr.name},#{wdSolr.logo},
  16. #{wdSolr.description},#{wdSolr.sectionNo},#{wdSolr.lookCount},#{wdSolr.favoriteCount},
  17. #{wdSolr.createUid},#{wdSolr.createTime},#{wdSolr.updateTime},#{wdSolr.timestamp}
  18. )
  19. </foreach>
  20. </insert>

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

  1. UPDATE table
  2. SET aa = CASE id
  3. WHEN 1 THEN 'oo'
  4. WHEN 2 THEN 'pp'
  5. WHEN 3 THEN 'qq'
  6. END
  7.   ,SET bb = CASE id
  8. WHEN 1 THEN 'xx'
  9. WHEN 2 THEN 'yy'
  10. WHEN 3 THEN 'zz'
  11. END
  12. WHERE id IN (1,2,3)

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

  1.   <!-- 批量更新数据 -->
  2. <update id="updateBatch">
  3. update wd_solr set
  4. name =
  5. <foreach collection="list" item="wdSolr" index="index"
  6. separator=" " open="case id" close="end">
  7. when #{wdSolr.id} then
  8. #{wdSolr.name}
  9. </foreach>
  10. ,logo =
  11. <foreach collection="list" item="wdSolr" index="index"
  12. separator=" " open="case id" close="end">
  13. when #{wdSolr.id} then
  14. #{wdSolr.logo}
  15. </foreach>
  16. ,timestamp =
  17. <foreach collection="list" item="wdSolr" index="index"
  18. separator=" " open="case id" close="end">
  19. when #{wdSolr.id} then #{wdSolr.timestamp}
  20. </foreach>
  21. where id in
  22. <foreach collection="list" item="wdSolr" index="index"
  23. separator="," open="(" close=")">
  24. #{wdSolr.id}
  25. </foreach>
  26. </update>

mybatis批量插入和批量更新的更多相关文章

  1. mybatis+mysql批量插入和批量更新、存在及更新

    mybatis+mysql批量插入和批量更新 一.批量插入 批量插入数据使用的sql语句是: insert into table (字段一,字段二,字段三) values(xx,xx,xx),(oo, ...

  2. spring data jpa开启批量插入、批量更新

    spring data jpa开启批量插入.批量更新 原文链接:https://www.cnblogs.com/blog5277/p/10661096.html 原文作者:博客园--曲高终和寡 *** ...

  3. MongoDB与传统数据库的使用区别——批量插入与批量查询

    我在百X知道上回答问题时经常遇到类似与这样的问题:MongoDB有没有像MySQL一样的ODBC驱动?MongoDB能不能像MySQL一样获取字段名称或类型. 我的回答是:不行,因为MongoDB不是 ...

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

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

  5. mybatis+mysql批量插入和批量更新

    一.批量插入 批量插入数据使用的sql语句是: insert into table (字段一,字段二,字段三) values(xx,xx,xx),(oo,oo,oo) mybatis中mapper.x ...

  6. Mybatis 批量插入、批量更新

            合理的使用批量插入.更新对性能优化有很大的作用,速度明显快了N倍.         要注意数据库连接串后面要新增:&allowMultiQueries=true,表示一个sql ...

  7. Mybatis批量插入、批量更新

    合理的使用批量插入.更新对优化有很大的作用,速度明显快了N倍. 数据库连接串后面要新增:&allowMultiQueries=true 批量插入的最大限制主要是看你整条sql占用的大小,所以可 ...

  8. mybatis Oracle 批量插入,批量更新

    传入的参数只要是list类型的参数就行了..............1.批量插入<insert id="insertBatch" parameterType="ja ...

  9. mybatis的插入与批量插入的返回ID的原理

    目录 背景 底层调用方法 单个对象插入 列表批量插入 完成 背景 最近正在整理之前基于mybatis的半ORM框架.原本的框架底层类ORM操作是通过StringBuilder的append拼接的,这次 ...

随机推荐

  1. [NOI2003],[AHOI2006]文本编辑器

    嘟嘟嘟 [NOI2003]的其实就是一个板子--所以我就不说啥了. 唯一需要注意的是读入字符(哎--):题中说"中间可能有空格,请忽略"的意思是要在程序里特判掉,不是不管他-- 输 ...

  2. 关于html的a标签的target="__blank "的安全漏洞问题

    使用场景:最近项目中使用一个a标签的 target="__blank "链接跳转 页面,打开一个新的 pdf文件(或者外部的一个网页),然后在chrome浏览器中快速的滑动的时候, ...

  3. ubuntu RPLIDAR A2的使用

    RPLIDAR是由RoboPeak Team,SlamTec公司开发的低成本2D LIDAR解决方案.它可以扫描6度半径内的360°环境. RPLIDAR的输出非常适合构建地图,做slam或构建3D模 ...

  4. SSM+BootStrap增删改查,以及头像上传

    先看界面 点击编辑之后 具体代码请往下看 一.jsp界面 <%@ page language="java" contentType="text/html; char ...

  5. SQL2005中的事务与锁定(九)-(2)- 转载

    -------------------------------------------------------------------------- Author : HappyFlyStone -- ...

  6. SQL Server CTE 递归查询全解(转载)

    在TSQL脚本中,也能实现递归查询,SQL Server提供CTE(Common Table Expression),只需要编写少量的代码,就能实现递归查询,本文详细介绍CTE递归调用的特性和使用示例 ...

  7. Luogu1344 追查坏牛奶 最小割

    题目传送门 题意:给出$N$个节点$M$条边的有向图,边权为$w$,求其最小割与达到最小割的情况下割掉边数的最小值.$N \leq 32,M \leq 1000,w\leq 2 \times 10^6 ...

  8. React-UI组件和容器组件

    UI组件负责页面的渲染,又叫傻瓜组件. 容器组件负责逻辑,又叫聪明组件. 当一个组件只有render函数的时候,就可以用无状态组件的形式来定义这个组件.无状态组件怎么定义呢?其实就是一个函数,接受pr ...

  9. b/s程序真的很方便部署吗

    公共应用当然是web系统,这个不说,我说的是企业应用. 最近一些年在企业开发中都提倡web应用,仿佛winform可以结束了,但真的这样吗?最近几天的真实经历如下: 我们部门新开发了一套系统要上线,由 ...

  10. Ionic 添加java原生代码 报support.v4不存在问题

    在做Ionic Hybird app开发过程中不可避免的使用一些原生代码的问题,那么怎么添加原生代码呢? 答案很简单:1.将原生代码直接拷贝到项目下的 你的项目名/platforms/android/ ...