`

mybatis批量操作三种方法

 
阅读更多
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 5种批量操作性能测试

    本测试主要探讨了 MyBatis Plus 中的五种批量操作方式,并通过单元测试进行性能测试。 1. **单条插入(Insert)** MyBatis Plus 提供了单条数据插入的方法,`insert()` 或 `insertIntoTable()`. 这种方法适合插入...

    Mybatis批量foreach merge into的用法

    Mybatis批量foreach merge into的用法是通过Mybatis的动态SQL语法foreach循环插入实现的,这种方法可以批量插入时间价格表数据。如果某个套餐的某天的价格存在,则更新,不存在则插入。下面是该方法的详细介绍: ...

    mybatis数据操作(增删改查+批量操作)

    在"mybatis数据操作(增删改查+批量操作)"这个主题中,我们将深入探讨如何利用MyBatis进行基本的数据操作,包括插入(Insert)、删除(Delete)、更新(Update)和查询(Select),以及如何执行批量操作。...

    Java实现mybatis批量插入数据到Oracle

    在Java开发中,MyBatis是一个非常流行的持久层框架,它简化了数据库操作,使得开发者可以更加专注于SQL语句的编写。本篇文章将详细介绍如何利用Java和MyBatis实现批量插入数据到Oracle数据库中。 首先,我们需要...

    MyBatis批量插入Update

    * 不需要额外添加回滚处理:MyBatis批量插入可以自动处理回滚操作,无需额外添加回滚处理。 需要注意的是,MyBatis批量插入可能会出现内存不足的问题,因此需要提前修改MySql的配置文件,增加max_allowed_packet的...

    Mybatis与JDBC批量插入MySQL数据库性能测试

    在数据库操作中,批量插入(Batch Insert)是一种提高性能的有效方式,尤其是在处理大量数据时。本文将探讨Mybatis和JDBC在批量插入MySQL数据库时的性能差异,并提供相关的测试资源。 首先,JDBC(Java Database ...

    Mybatis批量更新三种方式的实现

    Mybatis批量更新三种方式的实现 Mybatis是一款流行的持久层框架,它提供了强大的数据库交互能力。其中,批量更新是一种常见的操作,能够提高数据库操作的效率。下面将介绍Mybatis批量更新三种方式的实现。 方式一...

    mybatis批量添加实现1

    【Mybatis批量添加实现详解】 在数据库操作中,批量插入数据是常见的需求,尤其是在处理大量数据时,批量插入能够显著提高效率。Mybatis,作为一款轻量级的持久层框架,提供了灵活的方式来处理批量添加。本文将详细...

    mybatis 通用分页插件和批量操作插件

    NULL 博文链接:https://hzs0502030128.iteye.com/blog/2254585

    Mybatis批量插入的四种方式.docx

    Mybatis批量插入的四种方式 Mybatis 是一个流行的 Java 持久层框架,提供了多种方式来实现批量插入操作。下面将详细介绍 Mybatis 批量插入的四种方式。 1. 循环插入 循环插入是最简单的批量插入方式,即通过循环...

    mybatis postgresql 批量删除操作方法

    MyBatis PostgreSQL 批量删除操作方法 MyBatis 是一个基于 Java 的持久层框架,它提供了一个简单的方式来交互数据库。在本文中,我们将介绍如何使用 MyBatis 实现 PostgreSQL 批量删除操作。 PostgreSQL 简介 ...

    Mybatis实现多表联合查询和批量插入

    在 Employees 表操作接口中,需要提供批量插入方法,以便在Service层中调用。 ```java public interface EmployeesMapper { void insertEmployees(List&lt;Employees&gt; employees); } ``` 3. 进行批量插入 在 ...

    MyBatis批量插入(insert)数据操作

    此外,对于支持批量操作的数据库(如MySQL),还可以利用数据库级别的批量插入API来进一步提升性能。 总的来说,MyBatis的批量插入功能结合了Java代码的灵活性和SQL的高效性,是处理大批量数据插入的理想选择。通过...

    MyBatis防止批量更新1

    MyBatis 插件机制防止批量更新 MyBatis 是一个流行的持久层框架,它提供了插件机制来拦截 SQL 操作,以便于开发者可以在执行 SQL 语句前进行预处理或后续处理。本文将详细介绍 MyBatis 插件机制的实现原理和应用...

    Mybatis Plus 自定义批量插入或批量更新(根据唯一索引)

    Mybatis Plus 是 Mybatis 的一个扩展工具,它在 Mybatis 的基础上提供了许多便捷的功能,包括自动 CRUD 操作、条件构造器、批量操作等。在实际的项目开发中,批量插入和批量更新是常见的数据处理场景,尤其是在处理...

    详解mybatis 批量更新数据两种方法效率对比

    MyBatis批量更新数据两种方法效率对比 在MyBatis中,批量更新数据是指在一次数据库交互中更新多条记录的操作。这种操作可以提高应用程序的性能和效率。今天,我们将讨论两种批量更新数据的方法,并对其进行效率对比...

    Mybatis 3+Mysql 实现批量插入

    综上所述,利用MyBatis结合MySQL实现批量插入不仅可以大幅提高数据处理效率,还能有效降低系统资源消耗,是数据库操作中不可或缺的一项技能。通过上述详细讲解,相信读者已经对如何实现批量插入有了清晰的理解。

    MyBatis通过BATCH批量提交的方法

    总之,MyBatis通过BATCH模式提供的批量提交方法是一种非常实用且高效的解决方案,它能够显著提升批量数据库操作的性能。开发者们应当根据实际应用场景,合理设计批量操作的规模和事务管理机制,以达到最优的性能表现...

    mybatis 批量插入 嵌套select.pdf

    在MySQL中进行批量插入时,有时会遇到一种情况,即在插入数据的同时需要根据已存在的数据进行计算或选择。在MyBatis框架中处理这样的需求可能会遇到一些挑战,特别是当涉及到嵌套的SELECT语句时。这个问题的描述是...

    mybatis的oracle的批量插入优化和mybatis的generator自动生成三层文件

    在MyBatis中,我们可以通过以下几种方式实现批量插入: 1. **数组或集合参数**:将待插入的数据封装为数组或集合,然后在Mapper XML文件中使用foreach标签遍历并执行插入操作。例如: ```xml INSERT INTO table_...

Global site tag (gtag.js) - Google Analytics