手机
当前位置:查字典教程网 >编程开发 >Java >Mybatis 插入和删除批处理操作
Mybatis 插入和删除批处理操作
摘要:在操作数据库时,经常会碰到批量插入、批量删除的情况,直接执行SQL语句还好做一点,当使用Mybatis进行批量插入、批量删除时会有一些问题。...

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

1. 批量插入

Java代码:

// 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代码

<> ... <> <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语句

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

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

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

2. 批量删除

Java代码:

// 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代码

<> ... <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语句

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 插入和删除批处理操作】相关文章:

Java数组声明、创建、初始化基础

解决MyEclipse6.5无法启动,一直停留刚开始启动界面的详解

java 代码中预防空指针异常的处理办法

java怎么创建目录(删除/修改/复制目录及文件)代码实例

深入理解Java编程中异常处理的优劣

java异常与错误处理基本知识

Java命名规则详细总结

java中的内部类详细总结

java 折半查找法(二分查找)实例

解析Hibernate + MySQL中文乱码问题

精品推荐
分类导航