zoukankan      html  css  js  c++  java
  • spring对hibernate批量操作的支持

         本文由广州疯狂软件java培训分享:

      目前好多项目都使用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 );

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

      疯狂软件教育中心依托开发团队的强大技术实力,把企业最新技术融入实训课程,打造金牌的品质,才能给予学员黄金的未来,疯狂软件凭借过硬的技术实力与丰富的项目开发经验,赢得了社会的肯定。疯狂软件Java培训师资力量强大,课程内容深入,为学员高薪就业做了很好的铺垫,拥有丰富就业指导经验的就业团队也成为了学员高薪就业的先天优势。地址:广州天河区车陂沣宏大厦3楼。

  • 相关阅读:
    端口
    IDEA 快捷建
    Correct the classpath of your application so that it contains a single, compatible version of javax.
    Consider renaming one of the beans or enabling overriding by setting
    Idea 关于SpringBoot的@AutoWired 注入问题--无法自动装配Could not autowire. No beans of 'UserMapper' type found. more...
    数据库相关问题
    Initialization failed for 'https://start.spring.io' Please check URL, network and proxy settings. E
    爬虫
    CMS总结
    rust 打印当前时间
  • 原文地址:https://www.cnblogs.com/gojava/p/3625505.html
Copyright © 2011-2022 走看看