spring对hibernate批量操作的支持

目前好多项目都使用spring的HibernateTemplate作为dao层,在实际开发中经常会遇到批量更新和删除的操作,

在hibernate2.0时代,hibernate本身并没有提供对批量更新和批量删除的支持,当执行更新或删除操作时会先执行查询将所有对象加载到内存,而后一个对象一个对象的删除或更新,如果数据量很大,不仅会占用很多内存,而且也会使数据库的效率大大降低,如果想批量的执行就只能绕开hibernate的api使用jdbc的方式。

好在hibernate3.0以后,hibernate提供了对批量更新和批量删除的支持,能够直接执行批量更新或批量删除语句,无需把被更新或删除的对象先加载到内存中。

spring(我使用的版本是2.5.X)同样提供了这方面的支持,使用方法如下:

//dao继承于HibernateDaoSupport

String updateHql = "update LadderPrice t set t.laprStatus = 0 where t.cooperatorInfo.id = 1";

String deleteHql = "delete from LadderPrice t where t.cooperatorInfo.id = 1";

//批量更新和批量删除使用的相同的方法

//批量更新

int i = dao.getHibernateTemplate().bulkUpdate(updateHql );

//批量删除

int i = dao.getHibernateTemplate().bulkUpdate(deleteHql );

//批量操作只会向数据库发送一条语句,大大提高数据库访问效率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值