mybatis批量操作三种方法
一:批量更新某一个字段(数组或者map作为参数)
<update id="updateInvoiceID" parameterType="java.util.Map" >
update table
set
<if test="parentID != null and parentID !=''">
parentID= #{parentID}
</if>
where SUA_TransItemID in
<foreach collection="sUATransItemIDs" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</update>
二:批量新增或者批量修改(固定字段,不带条件,foreach放在执行内)
List<Map<String ,Object>> list = new ArrayList<Map<String ,Object>>();//作为参数
<insert id="insertBatch" parameterType="java.util.List">
insert into table(
xxx,
yyy,
zzz,
createTime
)values
<foreach collection="list" item="item" index="index"
separator=",">
(
#{item.xxx},
#{item.yyy},
#{item.zzz},
date_format( now()
,'%Y%m%d%H%i%s')
)
</foreach>
</insert>
三:批量新增或者批量修改(不固定字段,带if test条件,foreach放在执行外)
List<Map<String ,Object>> list = new ArrayList<Map<String ,Object>>();//作为参数
<insert id="insert" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" open="" close=";" separator=";">
insert table(
<if test="item.remark!=null and item.remark!=''">
remark,
</if>
createTime
)values
(
<if test="item.remark!=null and item.remark!=''">
#{item.remark},
</if>
date_format( now() ,'%Y%m%d%H%i%s')
)
</foreach>
</insert>
总结:(1)item:循环体中的具体对象。支持属性的点路径访问,如item.age,item.info.details。
具体说明:在list和数组中是其中的对象,在map中是value。
该参数为必选。
(2)separator:元素之间的分隔符,例如在in()的时候,separator=","会自动在元素中间用“,“隔开,避免手动输入逗号导致sql错误,如in(1,2,)这样。该参数可选。
(3)open:foreach代码的开始符号,一般是(和close=")"合用。常用在in(),values()时。该参数可选。
(4)close:foreach代码的关闭符号,一般是)和open="("合用。常用在in(),values()时。该参数可选。
(5)index:在list和数组中,index是元素的序号,在map中,index是元素的key,该参数可选。
分享到:
相关推荐
本测试主要探讨了 MyBatis Plus 中的五种批量操作方式,并通过单元测试进行性能测试。 1. **单条插入(Insert)** MyBatis Plus 提供了单条数据插入的方法,`insert()` 或 `insertIntoTable()`. 这种方法适合插入...
Mybatis批量foreach merge into的用法是通过Mybatis的动态SQL语法foreach循环插入实现的,这种方法可以批量插入时间价格表数据。如果某个套餐的某天的价格存在,则更新,不存在则插入。下面是该方法的详细介绍: ...
在"mybatis数据操作(增删改查+批量操作)"这个主题中,我们将深入探讨如何利用MyBatis进行基本的数据操作,包括插入(Insert)、删除(Delete)、更新(Update)和查询(Select),以及如何执行批量操作。...
在Java开发中,MyBatis是一个非常流行的持久层框架,它简化了数据库操作,使得开发者可以更加专注于SQL语句的编写。本篇文章将详细介绍如何利用Java和MyBatis实现批量插入数据到Oracle数据库中。 首先,我们需要...
* 不需要额外添加回滚处理:MyBatis批量插入可以自动处理回滚操作,无需额外添加回滚处理。 需要注意的是,MyBatis批量插入可能会出现内存不足的问题,因此需要提前修改MySql的配置文件,增加max_allowed_packet的...
在数据库操作中,批量插入(Batch Insert)是一种提高性能的有效方式,尤其是在处理大量数据时。本文将探讨Mybatis和JDBC在批量插入MySQL数据库时的性能差异,并提供相关的测试资源。 首先,JDBC(Java Database ...
Mybatis批量更新三种方式的实现 Mybatis是一款流行的持久层框架,它提供了强大的数据库交互能力。其中,批量更新是一种常见的操作,能够提高数据库操作的效率。下面将介绍Mybatis批量更新三种方式的实现。 方式一...
【Mybatis批量添加实现详解】 在数据库操作中,批量插入数据是常见的需求,尤其是在处理大量数据时,批量插入能够显著提高效率。Mybatis,作为一款轻量级的持久层框架,提供了灵活的方式来处理批量添加。本文将详细...
NULL 博文链接:https://hzs0502030128.iteye.com/blog/2254585
MyBatis PostgreSQL 批量删除操作方法 MyBatis 是一个基于 Java 的持久层框架,它提供了一个简单的方式来交互数据库。在本文中,我们将介绍如何使用 MyBatis 实现 PostgreSQL 批量删除操作。 PostgreSQL 简介 ...
Mybatis批量插入的四种方式 Mybatis 是一个流行的 Java 持久层框架,提供了多种方式来实现批量插入操作。下面将详细介绍 Mybatis 批量插入的四种方式。 1. 循环插入 循环插入是最简单的批量插入方式,即通过循环...
Mybatis Plus 是 Mybatis 的一个扩展工具,它在 Mybatis 的基础上提供了许多便捷的功能,包括自动 CRUD 操作、条件构造器、批量操作等。在实际的项目开发中,批量插入和批量更新是常见的数据处理场景,尤其是在处理...
在 Employees 表操作接口中,需要提供批量插入方法,以便在Service层中调用。 ```java public interface EmployeesMapper { void insertEmployees(List<Employees> employees); } ``` 3. 进行批量插入 在 ...
此外,对于支持批量操作的数据库(如MySQL),还可以利用数据库级别的批量插入API来进一步提升性能。 总的来说,MyBatis的批量插入功能结合了Java代码的灵活性和SQL的高效性,是处理大批量数据插入的理想选择。通过...
MyBatis 插件机制防止批量更新 MyBatis 是一个流行的持久层框架,它提供了插件机制来拦截 SQL 操作,以便于开发者可以在执行 SQL 语句前进行预处理或后续处理。本文将详细介绍 MyBatis 插件机制的实现原理和应用...
今天,我们将讨论MyBatis通过BATCH批量提交的方法,这是一种高效的方式来执行批量操作。 在MyBatis中,BATCH模式是指当执行多个SQL语句时,MyBatis会将这些语句缓存在内存中,然后在一个数据库会话中执行这些语句。...
MyBatis批量更新数据两种方法效率对比 在MyBatis中,批量更新数据是指在一次数据库交互中更新多条记录的操作。这种操作可以提高应用程序的性能和效率。今天,我们将讨论两种批量更新数据的方法,并对其进行效率对比...
综上所述,利用MyBatis结合MySQL实现批量插入不仅可以大幅提高数据处理效率,还能有效降低系统资源消耗,是数据库操作中不可或缺的一项技能。通过上述详细讲解,相信读者已经对如何实现批量插入有了清晰的理解。
Mybatis批量删除多表 MyBatis是一个功能强大且灵活的持久层框架,它能够帮助开发者快速高效地实现数据的持久化操作。在实际开发中,我们经常需要对多个表进行批量删除操作,这时就需要使用MyBatis的批量删除功能。...
在MySQL中进行批量插入时,有时会遇到一种情况,即在插入数据的同时需要根据已存在的数据进行计算或选择。在MyBatis框架中处理这样的需求可能会遇到一些挑战,特别是当涉及到嵌套的SELECT语句时。这个问题的描述是...