posts - 31,  comments - 31,  trackbacks - 0

程序功能:
使用ibatis+spring将oracle数据库中的tfile表中的数据抽取到db2数据库的tfile表,这两个表的结构相同。

测试环境:
celeron M 1.4/512M/mysql 5.0数据库
代码:

public static void main(String[] args) {
        
// TODO Auto-generated method stub
        ClassPathResource resource = new ClassPathResource(
                
"applicationContext.xml");
        BeanFactory factory 
= new XmlBeanFactory(resource);
        TFileDAO tFileDao 
= (TFileDAO) factory.getBean("tfile");

        TFileDAO test2FileDao 
= (TFileDAO) factory.getBean("test2tfile");
        
//获取全部数据
        List list = tFileDao.getAll();
        
//开启事务
        DataSourceTransactionManager txm = (DataSourceTransactionManager) factory
                .getBean(
"test2transactionManager");
        DefaultTransactionDefinition def 
= new DefaultTransactionDefinition();
        def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
        TransactionStatus status 
= txm.getTransaction(def);
        
try {
            test2FileDao.getSqlMapClient().startBatch();
            
for (int i = 0, count = list.size(); i < count; i++{
            
//插入数据
                test2FileDao.insert((TFile) list.get(i));
            }

            test2FileDao.getSqlMapClient().executeBatch();// 这两句有问题,请见Spring+ibatis心得2!
        }
 catch (Exception e) {
            txm.rollback(status);
            System.out.println(e);
        }

        txm.commit(status);
        System.out.println(list.size());
    }
1、保证使用长事务,不要在每个插入都事务提交,这样性能可以有很大幅度的提升
2、使用 test2FileDao.getSqlMapClient().startBatch();
              test2FileDao.getSqlMapClient().executeBatch();
             可以发起jdbc对批量数据插入的优化与自动代码压缩功能。

      结语:这次使用ibatis在同样的硬件、数据库、数据条数的环境下测试,在不起用batch,所有数据库,数据池特性均使用默认设置情况下使用19秒,并且使用一次性将数据读入内存的方式,效果优于hibernate,所以真信优化后的程序应该比hibernate效率更高。但是从程序编写方面来讲,hibernate省去了过多的代码,可以让程序员更轻松些。
posted on 2007-04-26 19:54 小平 阅读(3201) 评论(1)  编辑  收藏


FeedBack:
# re: ibatis +spring批量操作心得
2009-12-17 21:47 | 团派家园
3.0出来了吗。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
<2009年12月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿(2)

随笔分类

随笔档案

framework

j2me

java

linux

web

其他

友情链接

素材

最新评论

阅读排行榜

评论排行榜