`
hanqunfeng
  • 浏览: 1541993 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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 );

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

分享到:
评论

相关推荐

    struts2 hibernate spring 整合批量删除源码

    Struts2的Action接收到这些ID后,会调用Spring管理的Service层,Service层再通过Hibernate的Session进行数据库操作。如果所有记录都成功删除,事务会提交;如果有任何错误,事务会被回滚,防止数据不一致。 至于...

    Spring 和Hibernate 整合笔记和jar包

    - **单元测试**:Spring Test和Hibernate Test支持对整合后的应用进行单元测试,如使用JUnit和Mockito。 - **日志配置**:通过log4j或logback进行日志记录,便于调试和问题定位。 综上所述,Spring与Hibernate的...

    struts2+spring+hibernate整合实例

    以上是对"struts2+spring+hibernate整合实例"的详细解释,整合这三大框架能够构建出功能强大的企业级Web应用,但同时也需要开发者具备扎实的Java基础和良好的架构设计能力。在实际项目中,应根据需求选择最合适的...

    hibernate与spring整合demo

    Hibernate是一个对象关系映射(ORM)工具,它简化了数据库操作,而Spring则是一个全面的企业级应用框架,提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等特性。将Hibernate与Spring整合可以充分...

    spring整合hibernate与struts2所需jar包

    Spring作为一个全面的轻量级框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能,以及对其他框架的集成支持。Hibernate则是一个持久化框架,简化了数据库操作,而Struts2则是一个MVC(Model-View-Controller)...

    Spring+Hibernate整合

    接着,需要配置Hibernate的SessionFactory,这是Hibernate的核心组件之一,负责管理Session,提供对持久化操作的支持。配置如下: ```xml <bean id="sessionFactory" class="org.springframework.orm.hibernate3....

    spring2.5+strust1+hibernate3.0JAR包集合

    Hibernate提供了丰富的API,包括查询语言HQL(Hibernate Query Language)和Criteria API,以及用于批量操作的Session接口。这使得开发者无需直接编写SQL,即可实现对数据库的CRUD(Create, Read, Update, Delete)...

    Spring整合Hibernate示例完整代码

    10. **性能优化**:整合Spring和Hibernate后,我们可以通过配置和最佳实践优化性能,如批量操作、延迟加载、缓存策略等。 总的来说,Spring整合Hibernate能带来更优雅的代码结构、强大的事务管理和灵活的数据库操作...

    webwork2.1.7+spring+hibernate+oracle整合

    通过`hibernate3.jar`等核心库,Hibernate提供了对注解、实体管理器的支持,以及高级特性的实现,如缓存、批量更新、查询语言等。整合Hibernate与Spring,可以通过`hibernate.cfg.xml`和Spring的配置文件,实现...

    spring Hibernate整合源代码

    6. **批处理操作**:Spring与Hibernate的整合还支持批处理操作,如批量插入、更新等,提高数据库操作效率。 7. **缓存支持**:Spring可以集成Hibernate的二级缓存,如Ehcache,提高数据访问性能。 8. **异步操作**...

    spring+hibernate+struts+XFire的webService实例

    1. **Spring框架**:Spring是一个开源的Java平台,它为开发人员提供了全面的应用程序架构支持,包括依赖注入(DI)、面向切面编程(AOP)以及各种企业级服务。在本实例中,Spring作为核心容器管理其他组件,如...

    struts+spring+Hibernate学籍管理系统

    Hibernate是一个对象关系映射(ORM)框架,它简化了Java应用程序对数据库的操作。在学籍管理系统中,Hibernate负责数据的持久化,将数据库表与Java对象对应,通过HQL(Hibernate Query Language)进行查询,减少了...

    基于Spring的Hibernate Search全文检索功能示例

    在Spring中,我们可以轻松地集成其他库,如Hibernate,以实现持久层操作。 Hibernate是Java领域的一款对象关系映射(ORM)框架,它简化了数据库操作,使开发者可以使用面向对象的方式来处理数据库事务。而Hibernate...

    tapestry hibernate Spring应用及组件的使用

    Tapestry负责用户界面,Hibernate处理数据持久化,而Spring则提供了整体架构的支持。开发者可以利用Tapestry的组件来构建交互式界面,通过Hibernate与Oracle数据库进行数据交换,并利用Spring来管理和协调各个部分。...

    使用Spring、Hibernate、Struts的一些错误总结.txt

    在执行批量更新操作时,Hibernate抛出SQL语法错误。这可能是由于SQL语句不符合目标数据库的语法规范,或是参数设置不当导致的。 #### 解决方案: - 确保Hibernate的Dialect设置正确,与所使用的数据库类型相匹配。 ...

    整合 spring mvc、 spring、 hibernate、 bootstrap 开发网上书城管理系统

    7. **性能优化**:通过缓存技术(如Spring Cache)、数据库连接池(如HikariCP)和批量操作等方式提升系统性能。 8. **测试**:项目开发过程中,单元测试和集成测试是必不可少的,JUnit和Mockito等工具可以帮助我们...

    Spring3.0.5+Hibernate3.3 开发用到的lib

    2. **RESTful支持**:增强了对创建RESTful服务的支持,包括MessageConverter和UriTemplate的改进。 3. **改进的AOP**:支持更多的通知类型,如Around通知,增强了代理模型。 4. **JDBC抽象层**:增加了JdbcTemplate...

    基于注解的spring+hibernate+struts2源码.rar

    此外,Spring AOP支持通过`@Aspect`定义切面,`@Before`、`@After`等注解实现方法拦截。 二、Hibernate框架 Hibernate作为ORM框架,极大地简化了数据库操作。在基于注解的配置下,我们可以在实体类上使用`@Entity`...

    Spring4+SpringMVC4+Hibernate4+Jackson2.5.0

    Hibernate4引入了对JPA 2.1规范的完全支持,增强了缓存机制,以及对异步查询和批量操作的改进。 **Jackson2.5.0** 是一个JSON处理库,用于在Java中序列化和反序列化JSON数据。它可以方便地将Java对象转换为JSON格式...

Global site tag (gtag.js) - Google Analytics