在iBATIS框架中使用回调接口,同样也可以实现数据的批量操作,减少对数据库的访问次数,提高性能。下面是一个使用iBATIS框架向Oracle数据库批量插入数据的例子:
批量插入数据方法实现:
	  
		|  代码如下 | 
		复制代码 | 
	  
	  
		| 
 /** 
 * ibatis批量插入数据 
 * @param recordList 
 */ 
public void insertRecordByList(final List recordList) { 
 this.getSqlMapClientTemplate().execute(new SqlMapClientCallback() { 
  public Object doInSqlMapClient(SqlMapExecutor executor) 
    throws SQLException { 
   executor.startBatch(); 
   // 每次提交最大条数 
   final int batchSize = 200; 
   int count = 0; 
   for (Record record : recordList) { 
    executor.insert("Record.insertRecord", record); 
    // 每200条数据提交一次 
    if (++count % batchSize == 0) { 
     executor.executeBatch(); 
    } 
   } 
   // 提交剩余的数据 
   executor.executeBatch(); 
   return null; 
  } 
 }); 
} 
 | 
	  
	
对应的sqlMap:
	  
		|  代码如下 | 
		复制代码 | 
	  
	  
		| 
  
  
  
  insert into record 
   (id,  
   record,  
   insetDate)  
  values  
   (sequence_record.nextval,  
   #record#,  
   sysdate) 
  
 
 |