最近遇到需要批量update数据的问题,一开始用了一个for循环去update,数据量大的时候效率很低。原因是for循环每次update一条语句,都是一次连接过程。遇到大批数据更新的时候,效率就可想而知了。在google上找了一遍,发现iBatis里有对批量update的支持,挺好的东西。
代码如下:
final List tempList = list;
try {
if (List tempList != null) {
template.execute(
new SqlMapClientCallback() {
public Object doInSqlMapClient(SqlMapExecutor executor) throws
SQLException {
executor.startBatch();
for (int i = 0, n = tempList.size(); i < n; i++) {
executor.update("test.batchupdate",(Map)tempList.get(i));
}
executor.executeBatch();
return null;
}
}
);
}
}
用法就是这么简单,但是其工作的原理还没搞懂。
分享到:
相关推荐
#### ibatis批量Update解决方案 ibatis提供了一套完善的批量更新机制,可以有效地解决上述问题。下面详细介绍如何利用ibatis实现高效的批量更新: 1. **准备工作**: - 首先确保你的ibatis版本支持批量更新功能。...
在本文中,我们将深入探讨iBatis框架中的“ibatis批量”功能,特别是如何利用iBatis进行批量数据处理,包括批量插入、更新和删除操作。我们将通过解析提供的文件片段来阐述这一知识点,重点放在如何使用`<iterate>`...
### MySQL、JDBC详解及与iBatis对比 ...通过对MySQL的基本操作、JDBC的工作原理以及iBatis与JDBC的对比分析,我们可以更全面地理解数据库编程的关键概念和技术要点。希望本文能够帮助开发者们更加熟练地掌握这些技能。
本文将深入探讨“ibatis批量存储”这一主题,基于给定的文件名,我们将依次解析Ibatis中的iterate标签、批处理、foreach标签以及如何在Ibatis中使用HashMap。 1. Iterate标签详解及应用: Ibatis的iterate标签主要...
本篇文章将深入探讨Ibatis如何实现批量增删改查,以及相关的最佳实践。 首先,批量插入(Insert Batch)在Ibatis中可以通过动态SQL来实现。在映射文件中,你可以定义一个包含多个`<insert>`标签的SQL语句,每个`...
4. **动态SQL**: iBatis支持在XML中编写动态SQL,可以根据条件动态生成SQL语句,增加了SQL的灵活性。 5. **事务管理**: iBatis提供了事务控制功能,开发者可以自定义事务的提交和回滚。 **iBatis开发指南** 开发...
iBATIS支持批处理功能,通过批处理可以减少与数据库的交互次数,从而提升性能。 在iBATIS中进行批处理主要有两种方式: 1. **Spring模式下的批处理** 在Spring框架中,iBATIS与Spring的事务管理相结合,可以方便...
iBatis支持手动和自动事务管理,开发者可以通过TransactionManager来控制事务的提交和回滚。同时,它也支持Spring的声明式事务管理。 7. **插件支持** iBatis提供插件机制,通过拦截器(Interceptor)可以在SQL...
**iBATIS SQL Maps** 是一个强大的持久层框架,主要用于简化Java应用程序中对关系数据库的操作。它通过使用简单的XML配置文件来实现JavaBean与SQL语句之间的映射,从而减少了大量的数据访问代码。 **SQLMap的工作...
4. **Executor**:执行器是Ibatis执行SQL的底层实现,包括SimpleExecutor、ReuseExecutor和BatchExecutor,分别对应简单执行、重用执行和批量执行三种策略。Executor接口封装了对数据库的 CRUD 操作,提供了一种灵活...
使用该工具生成的XML文件可以无缝集成到你的Ibatis项目中,与Java接口配合使用,实现对数据库的高效操作。在Java代码中,你只需调用对应的Mapper方法,而无需关心底层的SQL构建细节。 在标签"java"、"sqlserver"和...
### iBatis批量操作 #### 一、简介 在企业级应用开发中,数据库操作是不可或缺的一部分。为了提高效率和减少资源消耗,批量处理成为了一种常用的技术手段。本文将介绍如何利用iBatis框架进行批量添加、修改、删除...
Ibatis是一个支持普通SQL查询、存储过程以及高级映射的优秀持久层框架。Ibatis可以让你直接编写原生态SQL,可以严格控制SQL执行性能,灵活度极高,尤其适合对SQL有特殊需求的项目。 ### SQL语句详解 #### 1. 删除...
- **事务管理**:提供对事务的支持,确保数据的一致性。 - **类加载**:处理 Java 类的加载问题,特别是当使用第三方库时。 - **批处理**:支持一次执行多条 SQL 语句,提高批量操作的性能。 - **日志记录**:提供 ...
通过以上总结,可以看出iBatis SQL Maps是一个功能强大的框架,不仅支持灵活的SQL语句定制,还提供了丰富的配置选项和高级功能,如动态SQL、缓存机制等,使得开发者能够在保持高性能的同时,更加便捷地进行数据库...
2. Executor:执行器,Ibatis的核心执行组件,根据不同的执行策略(如简单、缓存、批量)实现SQL的执行。 七、事务管理 Ibatis支持手动和自动两种事务管理方式。手动模式下,开发者需要自行开启和提交事务;自动...
5. **批量操作**:iBatis支持批量插入、更新和删除,可以显著提高数据处理效率。通过设置`<sql>`标签定义可重用的SQL片段,然后在具体的`<insert>`, `<update>`或`<delete>`标签中引用。 6. **与Spring整合**:...
7. **Type Handlers**:iBATIS提供了默认的类型处理器,但开发者也可以自定义类型处理器,以便对特定的数据类型进行特殊处理,比如日期格式化。 8. **Transactions**:iBATIS支持手动和自动事务管理,可以根据需求...