gpt4 book ai didi

Mybatis 插入和删除批处理操作

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Mybatis 插入和删除批处理操作由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

在操作数据库时,经常会碰到批量插入、批量删除的情况,直接执行SQL语句还好做一点,当使用Mybatis进行批量插入、批量删除时会有一些问题。下面对使用Mybatis批量插入,批量删除进行介绍.

1. 批量插入 。

Java代码:

?
1
2
3
4
5
6
7
8
9
// Model: Test.java
@Data
public class Test {
private String x;
private String y;
private String z;
}
// Mapper: TestMapper.java
public void insertTestList(List<Test> testList);

XML代码 。

?
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
<!-- XML: TestMapper.XML -->
...
<!-- 忽略重复数据 -->
<insert id= "insertTestList" parameterType= "Test" >
INSERT IGNORE INTO
test_table(test_x, test_y, test_z)
VALUES
<foreach item= "item" index= "index" collection= "list" open= "(" close= ")" separator= "," >
#{item}.x, #{item.y}, #{item}.z
</foreach>
</insert>
<!-- 更新重复数据 -->
<insert id= "insertTestList" parameterType= "Test" >
INSERT INTO
test_table(test_x, test_y, test_z)
VALUES
<foreach item= "item" index= "index" collection= "list" open= "(" close= ")" separator= "," >
#{item}.x, #{item.y}, #{item}.z
</foreach>
ON DUPLICATE KEY UPDATE
test_x = VALUES(test_x),
test_y = VALUES(test_y),
test_z = VALUES(test_z)
</insert>
...

批量插入SQL语句 。

?
1
insert into test_table(x, y, z) values ( 1 , 1 , 1 ), ( 2 , 2 , 2 ), ( 3 , 3 , 3 )

备注:VALUE()是Mysql的一个函数,具体解释可以查看文档function_values.

主要功能就是在数据重复时可以获取要更新的值.

2. 批量删除 。

Java代码:

?
1
2
3
4
5
6
7
8
9
// Model: Test.java
@Data
public class Test {
private String x;
private String y;
private String z;
}
// Mapper: TestMapper.java
public void deleteTestList(List<Test> testList);

XML代码 。

?
1
2
3
4
5
6
7
8
9
10
11
<!-- XML: TestMapper.XML -->
...
<delete id= "deleteTestList" parameterType= "Test" >
DELETE FROM
test_table
WHERE
<foreach item= "item" index= "index" collection= "list" open= "(" close= ")" separator= "OR" >
test_x = #{item.x} AND test_y = #{item.y} AND test_z = #{item.z}
</foreach>
</delete>
...

SQL语句 。

?
1
delete from test_table where (test_x = 1 AND test_y = 1 AND test_z = 1 ) or (test_x = 2 AND test_y = 2 AND test_z = 2 ) or (test_x = 3 AND test_y = 3 AND test_z = 3 )

备注:上面的代码为x,y,z为联合主键的情况,普通情况使用where id in.

以上所述是小编给大家介绍的Mybatis 插入和删除批处理操作,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我网站的支持! 。

最后此篇关于Mybatis 插入和删除批处理操作的文章就讲到这里了,如果你想了解更多关于Mybatis 插入和删除批处理操作的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com