Ibatis中进行批量操作
?
???? 最近遇到这样一个客户需求:需要向数据库里面一次插入几万条数据。系统的Persistence层用的是ibatis,
事务是通过spring管理。之前都是少量数据的操作,所以都是按照以下方式插入的:
????
????
public Object operate(final List<CardInfo> cardsToAdd, final List<AcctInfo> acctsToAdd, final List<AcctInfo> acctsToUpdate) throws DataAccessException{???? ??Object obj=this.getSqlMapClientTemplate().execute(new SqlMapClientCallback(){???? public Object doInSqlMapClient(SqlMapExecutor executor)???????????? {???? ???? try{???? getSqlMapClient().startTransaction();???? executor.startBatch();...
?? 后面的startBatch语句是通过使用jdbc的批处理来提高效率。这样就能顺利执行同一个事务下的批量操作了(注意:如果在批量startBatch之前没有开启事务,批处理是无效的)。
?
?? 就总结到这里吧,请光临的朋友多多指教。
??
????
??
?
??