一、前言                                  

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

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

二、MSSQL的SQL语句                          

WITH R AS(
SELECT 'John' as name, as age, as id
UNION ALL
SELECT 'Mary' as name, as age, as id
UNION ALL
SELECT 'Kite' as name, as age, 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, as age, as id
union all
select 'John' as name , as age, as id
) as r
where ID = R.id

四、SQLITE的SQL语句                          

当条更新:

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

批量更新:

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

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

五、总结                                  

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

尊重原创,转载请注明来自:http://www.cnblogs.com/fsjohnhuang/p/4078999.html  ^_^肥仔John

六、参考                                  

http://feng10251225.blog.163.com/blog/static/6312279820114302391320/

http://www.cnblogs.com/liping13599168/archive/2011/05/24/2054908.html

MyBatis魔法堂:各数据库的批量Update操作的更多相关文章

  1. MyBatis魔法堂:ResultMap详解

    一.前言   MyBatis是基于“数据库结构不可控”的思想建立的,也就是我们希望数据库遵循第三范式或BCNF,但实际事与愿违,那么结果集映射就是MyBatis为我们提供这种理想与现实间转换的手段了, ...

  2. mybatis批量update操作的写法,及批量update报错的问题解决方法

    mybatis的批量update操作写法很简单,如下: public interface YourMapper extends BaseMapper<YourExt> { void upd ...

  3. MyBatis魔法堂:Insert操作详解(返回主键、批量插入)

    一.前言    数据库操作怎能少了INSERT操作呢?下面记录MyBatis关于INSERT操作的笔记,以便日后查阅. 二. insert元素 属性详解   其属性如下: parameterType  ...

  4. MyBatis魔法堂:Insert操作详解

    一.前言 数据库操作怎能少了INSERT操作呢?下面记录MyBatis关于INSERT操作的笔记,以便日后查阅. 二. insert元素 属性详解 其属性如下: parameterType:入参的全限 ...

  5. MyBatis魔法堂:即学即用篇

    一.前言                   本篇内容以理解MyBatis的基本用法和快速在项目中实践为目的,遵循Make it work,better and excellent原则. 技术栈为My ...

  6. mysql批量update操作时出现锁表

    https://www.cnblogs.com/wodebudong/articles/7976474.html 最近遇到一件锁表的情况,发现更新的语句where检索的字段,没有建索引,且是批量操作的 ...

  7. 各种数据库的批量插入操作_Oracle

    最近工作中需要优化以前各种的Excel批量导入功能,目前将能优化的方面做个记录. 选用技术: 目前.Net可以访问Oracle常用的Dll,有三种: 微软自带的 System.Data.OracleC ...

  8. MyBatis学习 之 七、mybatis各种数据库的批量修改

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

  9. mySql事务_ _Java中怎样实现批量删除操作(Java对数据库进行事务处理)?

      本文是记录Java中实现批量删除操作(Java对数据库进行事务处理),在开始之前先来看下面这样的一个页面图: 上面这张图片显示的是从数据库中查询出的出租信息,信息中进行了分页处理,然后每行的前面提 ...

随机推荐

  1. kindle5 去广告

    在Amazon英文官网上登录已注册的美国亚马逊账号,首页找 Help,然后点 Contact Us,然后选了下问题类别,选 Chat. 然后就是和克服沟通了,说明你的情况, hello, I got ...

  2. PreparedStatement ResultSet

    public int searchProblemDistinctCount() throws Exception { DBOperator dbo = getDBOperator(); try { P ...

  3. 【转】android适配各种分辨率的问题

    http://blog.csdn.net/r8hzgemq/article/details/8243119   Android设备屏幕的尺寸是各式各样的,如小米是4英寸的,Xoom平板是10英寸:分辨 ...

  4. YAFFS2文件系统分析(转)

    http://blog.chinaunix.net/uid-25314474-id-343665.html 1.前言略. 2.yaffs 文件系统简介按理说这里应该出现一些诸如“yaffs 是一种适合 ...

  5. jquery.jqzoom.js图片放大镜

    jqzoom插件实现图片放大镜效果 1. jquery.jqzoom.js //************************************************************ ...

  6. python排序算法的实现-选择

    1.算法: 对于一组关键字{K1,K2,…,Kn}, 首先从K1,K2,…,Kn中选择最小值,假如它是 Kz,则将Kz与 K1对换: 然后从K2,K3,… ,Kn中选择最小值 Kz,再将Kz与K2对换 ...

  7. MapReduce的一点理解

    对于MapReduce编程,大概率的流程用过的人或多或少都清楚,但是归结到细节上,就有的地方不清楚了,下面根据自己的疑问,加上从网上各处,找到的被人的描述,最自己的疑问做出回答. 1. MapRedu ...

  8. 使用 Python SimpleHTTPServer 快速共享文件

    近期,想着从一个服务器 向另一个服务器传输文件,但是对其知之甚少,就从别人那里知道一种方法,使用 Python SimpleHTTPServer 快速共享文件. 直接运行:python -m Simp ...

  9. spotify engineering culture part 1

    原文 ,因为原视频说的太快太长, 又没有字幕,于是借助youtube,把原文听&打出来了. 中文版日后有时间再翻译. one of the big succeess factors here ...

  10. Etl之HiveSql调优(left join where的位置)

    一.前言 公司实用Hadoop构建数据仓库,期间不可避免的实用HiveSql,在Etl过程中,速度成了避无可避的问题.本人有过几个数据表关联跑1个小时的经历,你可能觉得无所谓,可是多次Etl就要多个小 ...