文章目录引言批量 Update批量 Insert批量 Select参考文献

引言

数据库的不同,决定了批量更新语句的差别!

批量 Update

Mysql

update userTable

when id=#{user.id} then #{user.status}

when id=#{user.id}

where id in

#{item.id}

Oracle

参数类型:List\ users

update userTable set id = #{user.id}

where

name = #{user.name}

name = #{user.name} and age = #{user.age}

注意:获取参数时都要带上user变量,如#{user.xxx}

批量 Insert

Mysql

如果你的数据库还支持多行插入, 你也可以传入一个 Author 数组或集合,并返回自动生成的主键。

keyProperty="id">

insert into Author (username, password, email, bio) values

(#{item.username}, #{item.password}, #{item.email}, #{item.bio})

对于不支持自动生成类型的数据库或可能不支持自动生成主键的 JDBC 驱动,MyBatis 有另外一种方法来生成主键。

这里有一个简单(甚至很傻)的示例,它可以生成一个随机 ID(你最好不要这么做,但这里展示了 MyBatis 处理问题的灵活性及其所关心的广度):

Oracle

select CAST(RANDOM()*1000000 as INTEGER) a from SYSIBM.SYSDUMMY1

insert into Author

(id, username, password, email,bio, favourite_section)

values

(#{id}, #{username}, #{password}, #{email}, #{bio}, #{favouriteSection,jdbcType=VARCHAR})

批量 Select

Mysql

Oracle

参数类型:List\ users

select * from

where id in

#{user.id}

参考文献

MyBatis 3 中文文档

oracle 批量插入 mysql 区别,Mysql与Oracle中批量插入和更新区别相关推荐

  1. mysql中有time吗_mysql中 datatime与timestamp的区别说明

    mysql中有三种日期类型: date(年-月-日) create table test(hiredate date); datetime(日期时间类型) create table test(hire ...

  2. mysql id in set_mysql数据库中find_in_set()和in()用法区别

    mysql数据库中find_in_set()和in()用法区别 (2015-07-19 08:30:21) 标签: mysql数据库 find_in_set 在mysql中in可以包括指定的数字,而f ...

  3. linux中exit和fatal区别,关于Linux系统命令中exit与exit的区别

    关于Linux系统命令中exit与exit的区别 注:exit()就是退出,传入的参数是程序退出时的状态码,0表示正常退出,其他表示非正常退出,一般都用-1或者1,标准C里有EXIT_SUCCESS和 ...

  4. linux批量在文件名前面加前缀,linux中批量添加文件前缀的操作

    linux中批量添加文件前缀的操作 需要在文件夹内所有txt文件的文件名前面添加"gt_"; 就是由原来的文件"xxx.txt"变成"gt_xxx.t ...

  5. php mysql 反斜杠_MySQL中如何插入反斜杠,反斜杠被吃掉,反斜杠转义(转)

    问题描述: mysql中带有反斜杠的内容入库后,发现反斜杠无故失踪了(俗话说被吃掉了) 例:插入insert into tb('url') values('absc\eeee'); 结果数据库里的内容 ...

  6. mysql schema table_关于数据库中table与schema的区别详解

    什么是Database,什么是Schema,什么是Table,什么是列,什么是行,什么是User? 相关mysql视频教程推荐:<mysql教程> 我们可以把Database看作是一个大仓 ...

  7. MySQL索引的Index method中btree和hash的区别

    2019独角兽企业重金招聘Python工程师标准>>> 在MySQL中,大多数索引(如 PRIMARY KEY,UNIQUE,INDEX和FULLTEXT)都是在BTREE中存储,但 ...

  8. mysql 几级缓存_Mysql中一级缓存二级缓存区别

    一级缓存: 也称本地缓存,sqlSession级别的缓存.一级缓存是一直开启的:与数据库同一次会话期间查询到的数据会放在本地缓存中. 如果需要获取相同的数据,直接从缓存中拿,不会再查数据库. 一级缓存 ...

  9. mysql的char和varchar_MySQL中CHAR和VARCHAR的区别及应用场景

    VARCHAR和CHAR是两种最主要的字符串类型.它们的存储方式和数据检索方式都不一样. VARCHAR和CHAR的数据检索效率:CHAR > VARCHAR VARCHAR类型 VARCHAR ...

  10. idea 改写 插入_如何在Word 2013中控制插入/改写模式

    idea 改写 插入 Word has two different modes used for editing text – Insert mode and Overtype mode. Inser ...

最新文章

  1. 物理化学 热力学第二定律
  2. Android 入职感想
  3. ui uview 安卓开发_uni-app UI框架之uview-ui使用教程
  4. 信息学奥赛一本通_长乐一中老师演绎“奥赛传奇”
  5. ExtJs 4.x Ajax简单封装
  6. 音视频SDP协议简介
  7. RabbitMQ架构模型(一)
  8. javascript中的array对象属性及方法
  9. 二端口网络的归一化转移矩阵[a]
  10. LeetCode OJ:Maximal Rectangle(最大矩形)
  11. win10系统HP打印机驱动程序无法使用
  12. kolla快速集成openstack-ocata和opencontrail-4.0.1.0单节点
  13. 嵌入式Linux应用学习(一)------QT控制LED设备硬件
  14. [导入]中国车牌号的识别
  15. 第二期腾讯AI加速器将面向全球招募AI创业者
  16. 关于对当前大学生的痛点分析
  17. 软件工程网络15个人作业3——案例分析(201521123107)
  18. 教你如何安慰失戀人?
  19. Netty里面的Boss和Worker【Server篇】
  20. win10蓝屏提示重新启动_关于网传0x000000F4蓝屏的临时分析解答

热门文章

  1. Ubuntu Server 18.04 安装
  2. 鸡蛋究竟宜不宜生吃——看阿里云计算怎么破?
  3. 品牌怎么做知乎营销?
  4. 第十三 关于JavaScript
  5. Keil MDK浮点数支持不正常的解决方案
  6. oracle教程之创建自己的锁定
  7. 浅析计算机软件可靠性设计
  8. 安装Ubuntu系统后的配置工作
  9. 【微软2014实习生及秋令营技术类职位在线測试】题目2 : K-th string
  10. ZooKeeper 初体验