`

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 postgresql 批量删除操作方法

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

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

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

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

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

    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通过BATCH批量提交的方法

    今天,我们将讨论MyBatis通过BATCH批量提交的方法,这是一种高效的方式来执行批量操作。 在MyBatis中,BATCH模式是指当执行多个SQL语句时,MyBatis会将这些语句缓存在内存中,然后在一个数据库会话中执行这些语句。...

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

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

    Mybatis 3+Mysql 实现批量插入

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

    Mybatis批量删除多表

    Mybatis批量删除多表 MyBatis是一个功能强大且灵活的持久层框架,它能够帮助开发者快速高效地实现数据的持久化操作。在实际开发中,我们经常需要对多个表进行批量删除操作,这时就需要使用MyBatis的批量删除功能。...

    mybatis 批量插入 嵌套select.pdf

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

Global site tag (gtag.js) - Google Analytics