zoukankan      html  css  js  c++  java
  • 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知识要求也相对增加了不少,倘若针对项目要求再将这些进行二次封装那会轻松比少。

      尊重原创,转载请注明来自: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

  • 相关阅读:
    fatfs输出目录
    《基于多光程长的高散射物质光学参数的测量及其应用》论文
    《2013李永乐线性代数强化班》视频1,2,3,4
    oled屏幕模块
    python中数据结构
    大数据python词频统计之hdfs分发-cacheFile
    8大排序之Python实现 冒泡排序优化
    大数据python词频统计之本地分发-file
    2019-04-30vmware虚拟机安装macos 10.8格式为iso
    2019-04-24Scurecrt 如何下载文本文件
  • 原文地址:https://www.cnblogs.com/fsjohnhuang/p/4078999.html
Copyright © 2011-2022 走看看