`

mybatis3批量更新 批量插入

    博客分类:
  • Java
 
阅读更多

在公司ERP项目开发中,遇到批量数据插入或者更新,因为每次连接数据库比较耗时,所以决定改为批量操作,提升效率。库存盘点导入时,需要大量数据批量操作。

1:数据库连接代码中必须开启批量操作。加上这句,&allowMultiQueries=true,完整的如下:

jdbc:mysql://localhost:3306/jeesite2016?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true

 

2:批量更新 ,注意update的separator是;,和批量插入的不一样。

<update id="batchUpdateQuantity" parameterType="java.util.List">
                  <foreach collection="list" item="item" index="index"  open="" close="" separator=";">
                  update erp_store 
                  <set> 
                  quantity=#{item.quantity},
                  update_date=#{item.updateDate}
                  </set> 
                  where id = #{item.id}
                 </foreach>
	</update>
	

经测试,一共1662条数据,批量插入用时466ms,循环单独插入用时1898ms。可以批量操作效率高很多。

 

3、批量插入  

<insert id="batchInsert">
		INSERT INTO erp_store_detail(
			id,
			store_id,
			type,
			change_quantity,
			after_quantity,
			update_date,
			remarks,
			link_id
		) VALUES 
	 <foreach collection="list" item="item" index="index" separator="," >  
        (
			#{item.id},
			#{item.store.id},
			#{item.type},
			#{item.changeQuantity},
			#{item.afterQuantity},
			#{item.updateDate},
			#{item.remarks},
			#{item.linkId}
		)
	 </foreach>  
    
	</insert>

 

分享到:
评论

相关推荐

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

    本文将深入探讨如何在 Mybatis Plus 中自定义批量插入和批量更新,并根据唯一索引来确保数据的唯一性。 首先,了解 Mybatis Plus 的批量操作基础。Mybatis Plus 提供了 `batchInsert()` 和 `batchUpdate()` 方法来...

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

    3. **数据库配置**:如InnoDB引擎的缓冲池大小、重做日志大小等,都会影响批量插入的性能。 4. **网络延迟**:数据库服务器与应用服务器之间的网络状况也会影响性能。 测试过程中,我们可以记录以下指标:总耗时、...

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

    3. 在Service层中调用Mapper接口,准备批量插入的数据: ```java @Service public class UserService { @Autowired private UserMapper userMapper; public void batchInsert(List&lt;User&gt; users) { userMapper....

    mybatis-generator,一对一,一对多,批量更新插入2

    使用方法请看博客 https://blog.csdn.net/bandaotixiruiqiang/article/details/72478361#comments_12931827

    Mybatis 3+Mysql 实现批量插入

    3. **性能监控**:持续监控批量插入的性能,根据实际情况调整批处理大小,找到最佳的批量大小以平衡性能和资源使用。 4. **错误处理**:设计合理的错误处理机制,当批量插入失败时,能够有效地回滚事务,并记录或...

    mybatis plus 5种批量操作性能测试

    3. **多线程批量插入(Multi-thread Batch Insert)** 在大数据量插入场景下,可以利用多线程并行插入,进一步提升效率。每个线程处理一部分数据,然后统一提交。但需要注意线程安全问题,避免并发写入导致的数据...

    mybatis-generator,一对一,一对多,批量更新插入

    使用方法请看博客https://blog.csdn.net/bandaotixiruiqiang/article/details/72478361#comments_12931827

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

    Mybatis实现多表联合查询和批量插入 Mybatis是一款流行的持久层框架,它可以帮助开发者快速、高效地访问数据库。在实际开发中,经常需要对多个表进行联合查询,或者对大量数据进行批量插入。本文将详细介绍如何使用...

    mybatis 批量插入返回主键

    只提供代码,自己去下载相关jar包谢谢只提供代码,自己去下载相关jar包谢谢只提供代码,自己去下载相关jar包谢谢只提供代码,自己去下载相关jar包谢谢只提供代码,自己去下载相关jar包谢谢

    mybatispuls3.5使用批量插入

    mybatis-plus.executor-type=BATCH # 设置为 BATCH 执行器以启用批量插入 ``` 3. 创建实体类: 为要批量插入的数据创建对应的实体类,确保每个字段都有对应的getter和setter方法。例如,有一个`User`类: ```java ...

    MyBatis批量插入Update

    MyBatis批量插入Update MyBatis批量插入是一种高效的数据插入方式,通过将多条数据一次性插入数据库,可以大大提高插入速度。在实际测试中,使用MyBatis批量插入可以达到至少快一倍的执行效率。 MyBatis批量插入的...

    Mybatis批量foreach merge into的用法

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

    mybatisr代码生成插件(中文注释,生成批量插入及修改)

    总的来说,"mybatis-generator代码生成插件(中文注释,生成批量插入及修改)"是一款强大的开发辅助工具,它通过自动化代码生成,降低了开发难度,提高了代码质量,尤其是在处理复杂数据关系和大量数据操作时,其...

    SpringBoot整合Mybatis连接SQL Server 跨库批量插入

    本篇将深入探讨如何在Spring Boot项目中整合Mybatis,实现对SQL Server数据库的跨库批量插入操作。 首先,我们需要在Spring Boot项目中引入相关的依赖。对于Mybatis的支持,我们需要添加Mybatis和其Spring Boot ...

    Oracle + Mybatis实现批量插入、更新和删除示例代码

    本篇文章重点讨论如何在Oracle数据库环境下,利用MyBatis进行批量插入、更新和删除操作,这有助于提高数据库操作的效率,减少资源消耗。 批量操作在处理大量数据时尤其重要,因为单条记录的事务提交会消耗更多的...

    mybatis中批量插入的两种方式(高效插入)

    本文将深入探讨MyBatis中实现批量插入的两种高效方式。 ### 1. MyBatis `foreach` 标签 `foreach` 是MyBatis中用于在SQL语句中迭代集合的标签,特别适合构建`IN`条件。`foreach` 元素的属性包括: - `item`: 集合...

    spring中使用mybatis实现批量插入的示例代码

    Spring 中使用 MyBatis 实现批量插入的示例代码 一、前言 在实际开发中,批量插入数据是非常常见的需求。使用 Spring 框架结合 MyBatis 框架,可以实现高效的批量插入操作。本文将详细介绍 Spring 中使用 MyBatis ...

    MyBatis动态SQL,MyBatis批量插入(Oracle数据库)[收集].pdf

    MyBatis动态SQL和批量插入的应用 MyBatis是一款功能强大且灵活的持久层框架,提供了多种方式来对数据库进行交互。其中,动态SQL是一种非常强大的特性,能够根据不同的条件生成不同的SQL语句。下面将详细介绍MyBatis...

    mybatis foreach批量插入数据:Oracle与MySQL区别介绍

    MyBatis foreach批量插入数据:Oracle与MySQL区别介绍 MyBatis foreach批量插入数据是一种高效的数据批量插入方式,通过foreach标签可以实现批量插入数据。但是,在不同的数据库管理系统中,foreach标签的使用有...

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

    本文将详细探讨如何在Oracle数据库中进行批量插入优化,并介绍MyBatis Generator这一自动化代码生成工具,以提高开发效率。 首先,让我们深入理解Oracle数据库中的批量插入。批量插入可以显著提升性能,尤其是在...

Global site tag (gtag.js) - Google Analytics