更新单条记录
1
|
UPDATE course SET name = 'course1' WHERE id = 'id1' ;
|
更新多条记录的同一个字段为同一个值
1
|
UPDATE course SET name = 'course1' WHERE id in ( 'id1' , 'id2' , 'id3);
|
更新多条记录为多个字段为不同的值
比较普通的写法,是通过循环,依次执行update语句。
Mybatis写法如下:
1
2
3
4
5
6
7
8
9
|
< update id= "updateBatch" parameterType= "java.util.List" >
<foreach collection= "list" item= "item" index = "index" open = "" close = "" separator= ";" >
update course
< set >
name =${item. name }
</ set >
where id = ${item.id}
</foreach>
</ update >
|
一条记录update一次,性能比较差,容易造成阻塞。
MySQL没有提供直接的方法来实现批量更新,但可以使用case when语法来实现这个功能。
1
2
3
4
5
6
7
8
9
10
11
12
|
UPDATE course
SET name = CASE id
WHEN 1 THEN 'name1'
WHEN 2 THEN 'name2'
WHEN 3 THEN 'name3'
END ,
title = CASE id
WHEN 1 THEN 'New Title 1'
WHEN 2 THEN 'New Title 2'
WHEN 3 THEN 'New Title 3'
END
更新单条记录
更新多条记录的同一个字段为同一个值
更新多条记录为多个字段为不同的值比较普通的写法,是通过循环,依次执行update语句。 Mybatis写法如下:
一条记录update一次,性能比较差,容易造成阻塞。 MySQL没有提供直接的方法来实现批量更新,但可以使用case when语法来实现这个功能。
这条sql的意思是,如果id为1,则name的值为name1,title的值为New Title1;依此类推。 在Mybatis中的配置则如下:
|
这条sql的意思是,如果id为1,则name的值为name1,title的值为New Title1;依此类推。
在Mybatis中的配置则如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
< update id= "updateBatch" parameterType= "list" >
update course
<trim prefix= "set" suffixOverrides= "," >
<trim prefix= "peopleId =case" suffix= "end," >
<foreach collection= "list" item= "i" index = "index" >
<if test= "i.peopleId!=null" >
when id=#{i.id} then #{i.peopleId}
</if>
</foreach>
</trim>
<trim prefix= " roadgridid =case" suffix= "end," >
<foreach collection= "list" item= "i" index = "index" >
<if test= "i.roadgridid!=null" >
when id=#{i.id} then #{i.roadgridid}
</if>
</foreach>
</trim>
<trim prefix= "type =case" suffix= "end," >
<foreach collection= "list" item= "i" index = "index" >
<if test= "i.type!=null" >
when id=#{i.id} then #{i.type}
</if>
</foreach>
</trim>
<trim prefix= "unitsid =case" suffix= "end," >
<foreach collection= "list" item= "i" index = "index" >
<if test= "i.unitsid!=null" >
when id=#{i.id} then #{i.unitsid}
</if>
</foreach>
</trim>
</trim>
where
<foreach collection= "list" separator= "or" item= "i" index = "index" >
id=#{i.id}
</foreach>
</ update >
http://my.oschina.net/ckanner/blog/338515
|
相关推荐
Mybatis批量foreach merge into的用法,这是介绍Mybatis批量foreach merge into的用法的文档
压缩包有eclipse包文件和操作步骤word文档 mybatis数据操作(增删改查+批量操作)
Mybatis与JDBC批量插入MySQL数据库性能测试,资源包含文档、代码和数据库。
本文给大家分享MyBatis批量插入(insert)数据操作知识,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧
NULL 博文链接:https://hzs0502030128.iteye.com/blog/2254585
测试在单元测试中
MyBatis的作用我想不用多说,今天说说MyBatis中的批量删除操作。 非常不错,感兴趣的朋友一起看看吧
主要介绍了Mybatis批量修改的操作代码,需要的朋友可以参考下
MyBatis的作用我想不用多说,今天说说MyBatis中的批量删除操作。 需要的朋友一起看看吧
关于数据库批量插入时sql语句级的优化,我特意测试了两种方式,在StudentMapper中配置了两种insert模式。第一种对应insert value1,insert value2,,,,;第二种对应insert values (value1, value2,....)。发现后者果然...
mybatis批量操作的源码
Mybatis Plus 自定义批量插入或批量更新(根据唯一索引)
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),这篇文章主要介绍了mybatis postgresql 批量删除操作,需要的朋友可以参考下
Java开发中集成mybatis+orcal做批量操作时会遇到的问题。就想记录一下问题,这里的方法我的是完全可以的
通过例子,介绍通过MyBatis访问达梦数据库,及各种关联查询,包括一对一、一对多、及多对多的关联关系的持久化类、Mapper、接口和测试。
mybatis动态sql之xml增删改查批量操作示例EmpMapper.xml
mybatis代码生成工具,源于mybatis-generator-gui ,个人定制开发 新增支持oracle分页,批量增删改操作。 下载解压即可,作为开发人员,相信你一看就知道怎么用。ui桌面界面操作,方便快捷。
主要介绍了mybatis 根据id批量删除的实现操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
在操作数据库时,经常会碰到批量插入、批量删除的情况,直接执行SQL语句还好做一点,当使用Mybatis进行批量插入、批量删除时会有一些问题。下面对使用Mybatis批量插入,批量删除进行介绍