MyBatis魔法堂:各数据库的批量Update操作

简介:

一、前言                                  

  MyBatis的update元素的用法与insert元素基本相同,因此本篇不打算重复了。本篇仅记录批量update操作的sql语句,懂得SQL语句,那么MyBatis部分的操作就简单了。

注意:下列批量更新语句都是作为一个事务整体执行,要不全部成功,要不全部回滚。

 

二、MSSQL的SQL语句                          


WITH R AS(
  SELECT 'John' as name, 18 as age, 42 as  id
  UNION ALL
  SELECT 'Mary' as name, 20 as age, 43 as  id
  UNION ALL
  SELECT 'Kite' as name, 21 as age, 44 as  id
)
UPDATE TStudent SET name = R.name, age = R.age
FROM R WHERE R.id = TStudent.Id

三、MSSQL、ORACLE和MySQL的SQL语句                


UPDATE TStudent SET Name = R.name, Age = R.age
from (
SELECT 'Mary' as name, 12 as age, 42 as id
union all
select 'John' as name , 16 as age, 43 as id
) as r 
where ID = R.id

四、SQLITE的SQL语句                          

当条更新:


REPLACE INTO TStudent(Name, Age, ID)
VALUES('Mary', 12, 42)

批量更新:




REPLACE INTO TStudent(Name, Age, ID)
SELECT * FROM (
 select 'Mary' as a, 12 as b, 42 as c
 union all
 select 'John' as a, 14 as b, 43 as b
) AS R

说明:REPLACE INTO会根据主键值,决定执行INSERT操作还是UPDATE操作。

 

五、总结                                  

  本篇突出MyBatis作为半自动ORM框架的好处了,全手动操控SQL语句怎一个爽字了得。但对码农的SQL知识要求也相对增加了不少,倘若针对项目要求再将这些进行二次封装那会轻松比少。

目录
相关文章
|
6月前
|
SQL Java 数据库连接
利用mybatis对数据库中的数据进行增删改查操作~
利用mybatis对数据库中的数据进行增删改查操作~
|
6月前
|
前端开发 Java 关系型数据库
【Mybatis-Plus】mybatisplus更新时,实体字段为空,数据库不更新的解决方案
【Mybatis-Plus】mybatisplus更新时,实体字段为空,数据库不更新的解决方案
251 0
|
XML Java 数据库连接
Mybatis 批量将list数据插入到数据库竟然这样处理
Mybatis 批量将list数据插入到数据库竟然这样处理
258 0
|
SQL XML 安全
mybatis批量更新数据三种方法效率对比【Mysql】
mybatis批量更新数据三种方法效率对比【Mysql】
1631 0
mybatis批量更新数据三种方法效率对比【Mysql】
|
3月前
|
Java 数据库连接 测试技术
【MyBatis】操作数据库——入门
【MyBatis】操作数据库——入门
|
9月前
|
XML SQL Java
MyBatis—操作数据库(二)
MyBatis—操作数据库(二)
|
9月前
|
XML Java 关系型数据库
MyBatis—操作数据库(一)
MyBatis—操作数据库
|
9月前
|
SQL XML Java
MyBatis—操作数据库(四)
MyBatis—操作数据库(四)
|
9月前
|
SQL XML Java
MyBatis—操作数据库(三)
MyBatis—操作数据库(三)
|
10月前
|
SQL Oracle Java
巧用Hibernate 完成多数据库的DDL脚本创建
巧用Hibernate 完成多数据库的DDL脚本创建
175 0

热门文章

最新文章