`
xs.cctv
  • 浏览: 22176 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

ibatis 批量添加数据

阅读更多
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;
			}
			
		});
	}
分享到:
评论
2 楼 xs.cctv 2013-04-15  
refar 写道
性能不行的哥们

确实不行,哥们有什么办法推荐一个,谢谢。
1 楼 refar 2013-04-10  
性能不行的哥们

相关推荐

    ibatis3批量插入

    通过Ibatis3xml文件配置+Mysql实现数据批量插入,原先在网上找很多,都是关于批量更新,批量插入的很少,而且其写法又完全不同,所以自己研究了一下。可供参考。另外插入时如出现内容报错,请参照my.cnf修改书库配置...

    ibatis的批量插入DAO实例

    本篇将深入探讨如何在Ibatis中实现批量插入数据的DAO(Data Access Object)实例,以及相关的源码分析。 首先,Ibatis允许我们通过SQL映射文件来定义SQL语句,这种方式比传统的JDBC更加灵活且易于维护。批量插入...

    ibatis批量存储

    总结来说,Ibatis批量存储涉及到iterate和foreach标签的使用,以及批处理的策略,它们都是为了更高效地处理大量数据。同时,HashMap的使用则为传递复杂参数提供了便利。熟练掌握这些知识点,可以有效地优化数据库...

    ibatis批量处理

    ### iBatis批量处理知识点详解 #### 一、iBatis基本实现 iBatis(现已更名为MyBatis)是一款优秀的持久层框架,它支持定制化SQL、存储过程及高级映射。iBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果...

    mysql,jdbc详解,与ibatis对比。批量查询,分页处理。

    - **批量查询**: 用于处理大量数据的查询任务。例如,当需要从表中检索数千条记录时,可以使用`IN`子句或循环处理等方式实现。 - **分页处理**: 在处理大量数据时非常有用,尤其是对于Web应用中的数据展示。常用的...

    ibatis list

    在本文中,我们将深入探讨iBatis框架中的“ibatis批量”功能,特别是如何利用iBatis进行批量数据处理,包括批量插入、更新和删除操作。我们将通过解析提供的文件片段来阐述这一知识点,重点放在如何使用`&lt;iterate&gt;`...

    ibatis 批量 增删改查

    在Ibatis中,批量操作提供了更高效、更灵活的方式处理大量数据。理解并熟练应用这些技巧,能显著提升应用程序的性能和可维护性。在实际项目中,根据具体需求选择合适的批量操作策略,并合理优化,可以大大降低系统...

    Mybatis 3+Mysql 实现批量插入

    在IT领域,尤其是在数据库操作与框架应用中,批量插入数据是一项常见且重要的需求。相比于单条插入,批量插入能够显著提升数据处理效率,减少数据库I/O操作,从而提高整体性能。本文将深入探讨如何利用MyBatis框架...

    ibatis结合oracle批量插入三种方法的测评

    这种方法使用iterate标签来批量插入数据,但是Oracle不支持一个insert语句中包含多个values的方式。这意味着,如果你想插入多行数据,你需要执行多个insert语句,这将导致性能问题。例如: ``` &lt;![CDATA[ insert ...

    IBatis.NET开发文档

    - 批量操作:如何利用iBATIS进行批量插入、更新或删除。 - 动态SQL的最佳实践:分享编写高效动态SQL的技巧和注意事项。 通过深入学习这些文档,开发者可以熟练掌握iBATIS.NET,实现高效、灵活的数据访问,同时...

    ibatis api,ibatis文档,ibatis说明文档

    Ibatis提供了两种执行器:SimpleExecutor和BatchExecutor,分别对应单条SQL执行和批量SQL执行。 5. ParameterMap和ParameterHandler:它们负责参数的设置和处理,ParameterMap代表了SQL参数的映射关系,而...

    iBatis操作

    本文将介绍如何利用iBatis框架进行批量添加、修改、删除等操作。 #### 二、iBatis批量操作原理 iBatis(现称为MyBatis)是一个支持普通SQL查询、存储过程以及高级映射的优秀持久层框架。它消除了几乎所有的JDBC...

    ibatis日期格式.doc

    在iBatis中,可以添加额外的SQL条件来确保在执行删除操作前先检查子项是否存在。例如,通过`&lt;if&gt;`标签来增加一个WHERE子句,检查子分类的数量是否为0。 - **问题2**: 缺少批量删除小组功能,但配置了多个复选框。这...

    ibatis 使用手册

    - **Insert**: 插入数据,支持自动获取自增主键值。 - **Update**: 更新数据,可以根据条件更新特定记录。 - **Delete**: 删除数据,根据指定条件删除匹配的记录。 **iBatis SQL Maps入门教程** 入门教程通常从...

    ibatis-2.3.

    10. **Batch Operations**: iBATIS 支持批量操作,如插入、更新和删除,可以提高数据处理效率。 从描述 "ibatis-2.3.ibatis-2.3.ibatis-2.3" 看,似乎是在强调这个版本,但并没有提供额外的信息。标签 "ibat" 显然...

    ibatis官方中文文档

    此外,文档还特别强调了如何通过iBATIS来调用存储过程,这是数据库操作中的一个重要特性,尤其是在处理复杂逻辑或批量操作时。 **iBATIS-SqlMaps-2-Tutorial_cn.pdf** 作为教程,这份文档提供了逐步指导,帮助读者...

    Ibatis.net学习和实例~

    1. **安装与设置**:首先,你需要下载并添加Ibatis.net库到你的项目中,然后配置相应的配置文件,包括数据库连接字符串以及SQL映射文件的位置。 2. **SQL映射文件**:这是Ibatis.net的核心部分,它定义了如何将数据...

    ibatis批处理.doc

    - **性能优化**:批量操作的数据量不宜过大,避免一次性加载过多数据导致内存压力,同时应合理调整数据库的批处理大小设置,以平衡性能和资源消耗。 - **事务隔离级别**:根据业务需求选择合适的事务隔离级别,以...

Global site tag (gtag.js) - Google Analytics