ibatis的批处理

本文详细介绍了如何在iBatis中实现批处理,包括基于事务的批处理、Spring+iBatis的批处理实现以及回调方式的批处理。通过startBatch()、executeBatch()等方法,以及事务管理,提升大数据量插入的效率。同时强调了批处理前开启事务的重要性。
摘要由CSDN通过智能技术生成

http://www.cnblogs.com/sunwei2012/archive/2010/11/26/1888497.html

最近做一个小项目,用到Spring+iBatis。突然遇到一个很久远,却很实在的问题:在Spring下怎么使用iBatis的批处理实现? 

大概是太久没有写Dao了,这部分真的忘得太干净了。

从4个层面分析这部分实现: 
  1. iBatis的基本实现
  2. 基于事务的iBatis的基本实现
  3. 基于事务的Spring+iBatis实现
  4. 基于回调方式的Spring+iBatis实现
1.iBatis的基本实现  
iBatis通过SqlMapClient提供了一组方法用于批处理实现: 
  1. startBatch() 开始批处理
  2. executeBatch() 执行批处理

代码如下: 
Java代码 
  1. public void create(List<Reply> replyList) {  
  2.   
  3.     try {  
  4.         // 开始批处理  
  5.         sqlMapClient.startBatch();  
  6.   
  7.         for (Reply reply: replyList) {  
  8.             // 插入操作  
  9.             sqlMapClient.insert("Reply.create", reply);  
  10.         }  
  11.         // 执行批处理  
  12.         sqlMapClient.executeBatch();  
  13.   
  14.     } catch (Exception e) {  
  15.         e.printStackTrace();  
  16.     }  
  17. }  

这是基于iBatis的最基本实现,如果你一步一步debug,你会发现:其实,数据库已经执行了插入操作! 
因此,除了这两个核心方法外,你还需要开启事务支持。否则,上述代码只不过是个空架子!  

2.基于事务的iBatis的基本实现  
事务处理: 
  1. startTransaction() 开始事务
  2. commitTransaction() 提交事务
  3. endTransaction() 结束事务


我们以insert操作为例,把它们结合到一起: 
Java代码 
  1. public void create(List<Reply> replyList) {  
  2.   
  3.     try {  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值