使用Spring的getHibernateTemplate()进行批处理(JDBC兼容方案)打赏

一直很抵触hibernate,原因不多说,总知是能不用就不用。最近项目有大量数据导入的需求,一直出现连续导入10w左右就内存溢出之类的情况,开启事物,分页flush session还是挺慢,换对象为SQL,拼装语句块直接执行效果也不理想。看到网上说的使用传统批处理速度要高10倍左右,于是试了试,还算可以。

由于项目其他地方有采用hibernate,甚至还用了iBATIS,不能随意更换框架或者改动接口。

网上很多采用sessionFactory.connection();获取Connection的文章,用过的朋友可能就知道,这个方法在Hibernate3.3.2版本中已被弃用。
替代方法:SessionFactoryUtils.getDataSource(sessionFactory).getConnection();
也可以直接使用:((SessionFactoryImplementor)sessionFactory).getConnectionProvider().getConnection();

获取到Connection后就好说了,做法完全是传统Jdbc的。通过这个方法单独实现一个大批量插入的接口也不是什么难事了,这里不再赘述。

使用Spring的getHibernateTemplate()进行批处理(JDBC兼容方案)
文章《使用Spring的getHibernateTemplate()进行批处理(JDBC兼容方案)》二维码
  • 微信打赏
  • 支付宝打赏

已有6条评论

  1. →→→点我*E夜情VY交友

    呵呵

    2014-07-05 03:01 回复
  2. 焦作问答信息网

    用到了

    2014-04-03 11:59 回复
  3. 娱乐城讯特

    支持一下..

    2014-03-28 10:42 回复
  4. 娱乐城讯特

    楼主早啊

    2014-03-27 09:40 回复
  5. 娱乐城讯特

    支持支持吧..

    2014-03-21 09:51 回复
  6. 温州拆迁

    hibernate 使用java的会经常用到的 http://www.dpd56.com

    2014-03-20 12:56 回复

(必填)

(必填)

(可选)