ibatis 批量添加数据
自己项目中用到的。
public void insertCiyt(final List<City> cityList) {
// TODO Auto-generated method stub
System.out.println("批量添加开始");
SqlMapClientCallback callback = new SqlMapClientCallback() {
public Object doInSqlMapClient(SqlMapExecutor executor)
throws SQLException {
int counter =1;
executor.startBatch();
for (City dto : cityList) {
//需要插入的语句
executor.insert("inserSql", dto);
counter++;
if (counter % 4000 == 0) {
executor.executeBatch();
executor.startBatch();
}
}
executor.executeBatch();
return null;//这里的返回值会被下面的Object接收到
}
};
//num 接受的是每次批量处理多少条数据
Object num = this.getSqlMapClientTemplate().execute(callback);
}
下面配置文件里面的
<sqlMap namespace="City">
<typeAlias alias="city" type="com.xxx.City" />
<resultMap class="city" id="cityMap">
<result property="cid" column="cid" />
<result property="name" column="name" />
</resultMap>
<insert id="insertSql" parameterClass="city">
<![CDATA[insert into u_city_copy(`cid`,`name`)
values(#cid#,#name#);]]>
</insert>
</sqlMap>
另一种方法也可以:
@Override
public void mergerLeagueRelation(final List<LeagueRelation> leagueRelation) {
this.getSqlMapClientTemplate().execute(new SqlMapClientCallback(){
public Object doInSqlMapClient(SqlMapExecutor executor)
throws SQLException {
executor.startBatch();
int counter = 0;
for (LeagueRelation temp : leagueRelation) {
executor.insert("mergerLeagueRelation",temp);
counter ++ ;
if(counter%10000==0){
executor.executeBatch();
executor.startBatch();
}
}
executor.executeBatch();
return null;
}
});
}
分享到:
相关推荐
通过Ibatis3xml文件配置+Mysql实现数据批量插入,原先在网上找很多,都是关于批量更新,批量插入的很少,而且其写法又完全不同,所以自己研究了一下。可供参考。另外插入时如出现内容报错,请参照my.cnf修改书库配置...
本篇将深入探讨如何在Ibatis中实现批量插入数据的DAO(Data Access Object)实例,以及相关的源码分析。 首先,Ibatis允许我们通过SQL映射文件来定义SQL语句,这种方式比传统的JDBC更加灵活且易于维护。批量插入...
总结来说,Ibatis批量存储涉及到iterate和foreach标签的使用,以及批处理的策略,它们都是为了更高效地处理大量数据。同时,HashMap的使用则为传递复杂参数提供了便利。熟练掌握这些知识点,可以有效地优化数据库...
### iBatis批量处理知识点详解 #### 一、iBatis基本实现 iBatis(现已更名为MyBatis)是一款优秀的持久层框架,它支持定制化SQL、存储过程及高级映射。iBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果...
- **批量查询**: 用于处理大量数据的查询任务。例如,当需要从表中检索数千条记录时,可以使用`IN`子句或循环处理等方式实现。 - **分页处理**: 在处理大量数据时非常有用,尤其是对于Web应用中的数据展示。常用的...
在本文中,我们将深入探讨iBatis框架中的“ibatis批量”功能,特别是如何利用iBatis进行批量数据处理,包括批量插入、更新和删除操作。我们将通过解析提供的文件片段来阐述这一知识点,重点放在如何使用`<iterate>`...
在Ibatis中,批量操作提供了更高效、更灵活的方式处理大量数据。理解并熟练应用这些技巧,能显著提升应用程序的性能和可维护性。在实际项目中,根据具体需求选择合适的批量操作策略,并合理优化,可以大大降低系统...
在IT领域,尤其是在数据库操作与框架应用中,批量插入数据是一项常见且重要的需求。相比于单条插入,批量插入能够显著提升数据处理效率,减少数据库I/O操作,从而提高整体性能。本文将深入探讨如何利用MyBatis框架...
这种方法使用iterate标签来批量插入数据,但是Oracle不支持一个insert语句中包含多个values的方式。这意味着,如果你想插入多行数据,你需要执行多个insert语句,这将导致性能问题。例如: ``` <![CDATA[ insert ...
- 批量操作:如何利用iBATIS进行批量插入、更新或删除。 - 动态SQL的最佳实践:分享编写高效动态SQL的技巧和注意事项。 通过深入学习这些文档,开发者可以熟练掌握iBATIS.NET,实现高效、灵活的数据访问,同时...
Ibatis提供了两种执行器:SimpleExecutor和BatchExecutor,分别对应单条SQL执行和批量SQL执行。 5. ParameterMap和ParameterHandler:它们负责参数的设置和处理,ParameterMap代表了SQL参数的映射关系,而...
本文将介绍如何利用iBatis框架进行批量添加、修改、删除等操作。 #### 二、iBatis批量操作原理 iBatis(现称为MyBatis)是一个支持普通SQL查询、存储过程以及高级映射的优秀持久层框架。它消除了几乎所有的JDBC...
在iBatis中,可以添加额外的SQL条件来确保在执行删除操作前先检查子项是否存在。例如,通过`<if>`标签来增加一个WHERE子句,检查子分类的数量是否为0。 - **问题2**: 缺少批量删除小组功能,但配置了多个复选框。这...
- **Insert**: 插入数据,支持自动获取自增主键值。 - **Update**: 更新数据,可以根据条件更新特定记录。 - **Delete**: 删除数据,根据指定条件删除匹配的记录。 **iBatis SQL Maps入门教程** 入门教程通常从...
10. **Batch Operations**: iBATIS 支持批量操作,如插入、更新和删除,可以提高数据处理效率。 从描述 "ibatis-2.3.ibatis-2.3.ibatis-2.3" 看,似乎是在强调这个版本,但并没有提供额外的信息。标签 "ibat" 显然...
此外,文档还特别强调了如何通过iBATIS来调用存储过程,这是数据库操作中的一个重要特性,尤其是在处理复杂逻辑或批量操作时。 **iBATIS-SqlMaps-2-Tutorial_cn.pdf** 作为教程,这份文档提供了逐步指导,帮助读者...
1. **安装与设置**:首先,你需要下载并添加Ibatis.net库到你的项目中,然后配置相应的配置文件,包括数据库连接字符串以及SQL映射文件的位置。 2. **SQL映射文件**:这是Ibatis.net的核心部分,它定义了如何将数据...
- **性能优化**:批量操作的数据量不宜过大,避免一次性加载过多数据导致内存压力,同时应合理调整数据库的批处理大小设置,以平衡性能和资源消耗。 - **事务隔离级别**:根据业务需求选择合适的事务隔离级别,以...