`
gc715409742
  • 浏览: 94824 次
  • 来自: 北京
社区版块
存档分类

ibatis批处理提高性能

    博客分类:
  • Java
阅读更多
ibatis循环处理与批处理--以插入操作为例

1.循环处理

循环操作的ibatis配置

<!-- 插入一条记录 -->
  <insert id="insertUser" parameterClass="User">
  	<![CDATA[
  		insert into user(
  			id,
  			userName,
  			passWord
  		)values(
  			#id#,
  			#userName#,
  			#passWord#
  		)
  	]]>
  </insert>


循环操作的Junit测试

/**
	 * 循环插入一条用户记录
	 * @throws Exception
	 */
	public void insertTest() throws Exception{
		Long oldTime = System.currentTimeMillis();
		//System.out.println(oldTime);
		for(int i= 0; i < 10000 ; i++){
			User user = new User();
			user.setId(String.valueOf(i));
			user.setUserName("用户"+ i);
			user.setPassWord("user"+ i);
			new UserDaoImpl().insert(user);
			System.out.println(i);
		}
		System.out.println("循环插入多条记录所花费的时间:"+ (System.currentTimeMillis()-oldTime)/1000.00 +"s");
	}


2.批处理

批处理的ibatis配置

<!-- 插入多条记录 -->
  <insert id="insertUserList" parameterClass="java.util.List">
  	<![CDATA[
  		insert into user(
  			id,
  			userName,
  			passWord
  		) values
  	]]>
  	<iterate conjunction=",">
  	<![CDATA[
  		(
  			#list[].id#,
  			#list[].userName#,
  			#list[].passWord#
  		)
  	]]>
  	</iterate>
  </insert>


批处理Junit测试

/**
	 * 插入多条记录 --快
	 * @throws Exception
	 */
	public void insertListTest() throws Exception{
		Long oldTime = System.currentTimeMillis();
		//System.out.println(oldTime);
		List<User> users = new ArrayList<User>();
		for(int i=0; i< 10000; i++){
			User user = new User();
			user.setId(String.valueOf(i));
			user.setUserName("用户"+ i);
			user.setPassWord("user"+ i);
			users.add(user);
			System.out.println(i);
		}
		new UserDaoImpl().insertList(users);
		System.out.println("一次插入多条记录所花费的时间:"+ (System.currentTimeMillis()-oldTime)/1000.00 +"s");
	}


从上面的例子能够测试出批处理的性能高于循环处理的性能。在实际的项目中,对于一次需要插入多条数据,应该使用批处理。
0
0
分享到:
评论

相关推荐

    ibatis批处理.doc

    - **预编译语句(PreparedStatement)**:iBATIS批处理默认使用预编译语句,这可以进一步提高性能,因为数据库只需解析SQL语句一次。 综上所述,iBATIS的批处理功能通过在事务内执行一组数据库操作,可以显著提高...

    ibatis批处理

    iBatis 批处理是一种高效的数据操作方式,尤其在处理大量数据时,可以显著提高性能。iBatis 提供了两种批处理的实现方法:在代码中直接进行循环操作和在配置文件中进行循环操作。 **1. 直接在代码中进行循环操作** ...

    ibatis 完美例子 一对多 批处理 事务 和 spring struts2集成

    接着,批处理操作是提高性能的关键。在Ibatis中,可以通过设置SqlSession的flushCache和useCache属性,以及使用批处理执行器ExecutorType.BATCH,来实现批量插入、更新或删除。例如,在插入1万条数据时,将这些操作...

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

    6. 缓存:Ibatis提供了本地缓存和二级缓存机制,有助于提高性能。 7. 执行性能:提供优化建议,如批处理、缓存使用等,以提升应用程序的运行效率。 总之,Ibatis是一个强大且灵活的Java持久层框架,其API、文档和...

    ibatis应对批量update

    为了解决这个问题,ibatis(现已更名为MyBatis)提供了一种支持批量更新的机制,能够显著提高数据处理的速度。 #### 批量Update背景与问题 在实际应用中,经常会遇到需要批量更新数据库中的数据的情况,例如:商品...

    ibatis教程,ibatis帮助文档

    1. SqlMapClient:它是iBATIS的主要接口,负责执行SQL映射和批处理操作。提供多种方法如queryForObject、queryForMap等,用于执行不同的查询或更新操作。 2. sqlmapconfig.xml:这是iBATIS的全局配置文件,包含了...

    ibatis系列 详细介绍

    8. **性能优化**:提供一些关于提高iBATIS性能的建议,如合理设计SQL、使用批处理等。 《ibatis.pdf》可能是iBATIS的官方文档或综合指南,可能包含更广泛的内容,如最佳实践、高级特性、与其他框架的集成等。 ...

    ibatis批量存储

    批处理是提高数据库操作效率的一种重要手段,Ibatis也支持批处理功能。在批量存储场景下,批处理可以一次性提交多个SQL语句,减少与数据库的交互次数,从而提升性能。使用Ibatis的批处理,首先需要开启SqlSession的...

    ibatis基础教学文档

    1. SqlMapClient:它是iBATIS的主要接口,负责执行SQL映射和批处理操作。提供了如queryForObject、queryForMap等方法来执行查询或更新操作。 2. sqlmapconfig.xml:这是全局配置文件,定义了数据源、事务管理器等...

    ibatis批量处理

    iBatis提供了批处理功能,可以在一次数据库连接中执行多个SQL语句,这极大地提高了处理大量数据时的性能。iBatis通过`SqlMapClient`接口提供了几个关键方法来实现批处理: 1. **`startBatch()`**:开始批处理。 2. ...

    ibatis jar包.zip

    9. **性能优化**:通过预编译SQL语句、批处理等技术,iBATIS能够有效地提高数据库操作的性能。 总之,"ibatis jar包.zip" 提供了使用iBATIS框架进行数据库访问所需的全部组件,使得开发者能够快速地构建数据驱动的...

    ibatis 中文手册

    1. **批处理**:通过设置 SqlSession 的 flushCache 和 autoCommit 属性,可以实现批量插入、更新等操作,提高性能。 2. **合理使用缓存**:根据业务需求调整缓存策略,避免不必要的数据库访问。 **七、与其他技术...

    ibatis-common.jar包

    它提供了两种基本的执行模式:SimpleExecutor(简单执行器)和BatchExecutor(批处理执行器),前者每次执行一条SQL,后者则将多条SQL语句合并成一个批处理,提高效率。 4. **ParameterMap**与**ParameterMapping**...

    ibatis Guide

    这意味着,当面对某些特定环境,如数据安全限制、业务逻辑需在数据库层实现或系统性能极端敏感时,ibatis因其灵活的SQL定制能力和更高的设计自由度而成为更优选择。 #### ibatis基础语义 - **...

    iBATIS_DAO-2.2.0.638

    5. **缓存机制**:为了提高性能,iBATIS内置了缓存机制,可以在内存中缓存查询结果,减少不必要的数据库访问。 6. **数据源配置**:支持多种数据源,可以根据需求选择不同的数据库连接方式,如单例、连接池等。 7....

    ibatis in action 电子书(pdf)

    6. **缓存机制**:iBATIS提供了一种有效的缓存机制,以提高查询性能。书中会介绍本地缓存和二级缓存的配置和使用,以及缓存策略的优化。 7. **动态SQL**:iBATIS的一大亮点在于它的动态SQL能力,可以避免大量硬编码...

    iBATIS-SqlMaps-中文教程

    9. **性能优化**:探讨如何通过缓存机制、批处理、预编译SQL等方式提升iBATIS的性能。 10. **实战案例**:通过实际项目中的例子,如用户管理、订单处理等,深入体验iBATIS在实际开发中的应用。 11. **源码分析**:...

    详细介绍Ibatis的用法

    - **批处理**:对于大量数据的插入或更新操作,可以使用批处理来提高效率。 - **执行SQL语句**:通过`SqlMapClient`接口提供的方法执行SQL语句。 #### 示例代码 - **执行更新操作**:使用`update`方法执行INSERT...

    ibatis文档

    为了提高性能,iBATIS支持对MappedStatement的结果集进行缓存,包括只读缓存和可读写缓存。 ### 动态MappedStatement 动态SQL是iBATIS的一个强大功能,允许根据运行时的条件动态生成SQL语句,支持条件判断、循环等...

    iBATIS-SqlMaps中文教程集合

    - 性能优化:提供性能调优的策略,包括缓存使用、批处理等技巧。 这四本教程全面覆盖了iBATIS的核心概念和实践应用,无论你是初学者还是有经验的开发者,都能从中受益。通过学习,你将能够有效地利用iBATIS来提升...

Global site tag (gtag.js) - Google Analytics