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

                                 

  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

如果您觉得本文的内容有趣就扫一下吧!捐赠互勉!

时间: 2024-10-22 06:55:37

MyBatis学习 之 七、mybatis各种数据库的批量修改的相关文章

MyBatis学习教程(七)-Mybatis缓存介绍_java

一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 1.一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空. 2. 二级缓存: 二级缓存与一级缓存其机制相同,默认也是采用 PerpetualCache,HashMap存储,不同在于其存储作用域为 Mapper(Namespace),并且可自

Mybatis学习总结之mybatis使用建议_java

简介:什么是MyBatis? (前身为iBatis) MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 1.Mapper层参数为Map,由Service层负责重载.     Mapper由于机制的问题,不能重载,参数一般设

MyBatis学习教程(三)-MyBatis配置优化_java

一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下: <?xml version="." encoding="UTF-"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config .//EN" "http://mybatis.org/dtd/mybatis--

mybatis-Mybatis操作Oracle数据库:批量修改成功后返回的值是-1?

问题描述 Mybatis操作Oracle数据库:批量修改成功后返回的值是-1? Mapper.xml <update id="updateByMultiConditions" parameterType="java.util.List"> <foreach collection="list" item="item" index="index" open="begin"

mssql数据库游标批量修改符合条件的记录

//需求:由于项目刚上传,没有票数,为了表现出一定的人气,需要在一开始把各项目的票数赋一个值 , 但每个项目不能一样,否则容易看出问题,呵呵 . DECLARE @Id varchar(50) DECLARE My_Cursor CURSOR --定义游标 FOR (SELECT Id FROM dbo.kinpanAwardProject where session=9) --查出需要的集合放到游标中 OPEN My_Cursor; --打开游标 FETCH NEXT FROM My_Curs

mssql数据库游标批量修改符合条件记录的方法_mssql2005

需求:由于项目刚上传,没有票数,为了表现出一定的人气,需要在一开始把各项目的票数赋一个值 , 但每个项目不能一样,否则容易看出问题,呵呵 . 复制代码 代码如下: DECLARE @Id varchar(50) DECLARE My_Cursor CURSOR --定义游标 FOR (SELECT Id FROM dbo.kinpanAwardProject where session=9) --查出需要的集合放到游标中 OPEN My_Cursor; --打开游标 FETCH NEXT FRO

mybatis学习笔记之基础框架(2)

mybatis学习笔记之基础框架(2) mybatis是一个持久层的框架,是apache下的顶级项目. mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成满足sql语句 mybatis可将向prparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象.(输出映射) SqlMapConfig.xml(是mybatis的全局配置文件,名称不固定) 配置了数据源/事务等mybatis运行环境 配置映射文件(配置sql语句) m

mybatis学习笔记之学习目录(1)

mybatis学习笔记之学习结构(1) 学习结构: 1.mybatis开发方法 原始dao开发方法(程序需要编写dao接口和dao实现类) mybatis的mapper接口(相当于dao接口)代理开发方法 mybatis配置文件SqlMapConfig.xml mybatis核心: mybatis输入映射 mybatis输出映射 mybatis的动态sql 2.高级知识 高级结果集映射(一对一/一对多/多对多) mybatis查询缓存(一级缓存/二级缓存) mybatis和spring进行整合

mybatis学习笔记之基础复习(3)

mybatis学习笔记之基础复习(3) mybatis是什么? mybatis是一个持久层框架,mybatis是一个不完全的ORM框架.sql语句需要程序员自己编写, 但是mybatis也是有映射(输入参数映射.输出结果映射) mybatis入门门槛不高,学习成本低,让程序员把精力放在sql语句上,对sql语句优化非常方便, 适用于需求变化较多项目,比如互联网项目. mybatis框架执行过程: 1.配置mybatis的配置文件,SqlMapConfig.xml(名称不固定) 2.通过配置文件,