A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一、前言                                  
  MyBatis的update元素的用法与insert元素基本相同,因此本篇不打算重复了。本篇仅记录批量update操作的sql语句,懂得SQL语句,那么MyBatis部分的操作就简单了。
注意:下列批量更新语句都是作为一个事务整体执行,要不全部成功,要不全部回滚。

二、MSSQL的SQL语句                          
[url=][/url]
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.ageFROM R WHERE R.id = TStudent.Id[url=][/url]


三、MSSQL、ORACLE和MySQL的SQL语句                
[url=][/url]
UPDATE TStudent SET Name = R.name, Age = R.agefrom (SELECT 'Mary' as name, 12 as age, 42 as idunion allselect 'John' as name , 16 as age, 43 as id) as r where ID = R.id[url=][/url]


四、SQLITE的SQL语句                          
当条更新:
REPLACE INTO TStudent(Name, Age, ID)VALUES('Mary', 12, 42)
批量更新:
[url=][/url]
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[url=][/url]

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

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

六、参考                                  
http://feng10251225.blog.163.com/blog/static/6312279820114302391320/
http://www.cnblogs.com/liping13599168/archive/2011/05/24/2054908.html

转载来自 ^_^肥仔John
文章仅作分享

1 个回复

倒序浏览
感谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马