一、前言
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