Spring 对Hibernate 的简化
Hibernate 的持久层访问必须按如下步骤进行:
(1)创建Configuration 实例。
(2) 创建SessionFactory 实例。
(3)创建Session 实例。
(4) 打开事务。
(5) 开始持久化访问。
(6) 提交事务。
(7) 如果遇到异常,回滚事务。
(8) 关闭Session 。
虽然可以采用类似于HibernateUtils 工具类封装了部分过程,但依然不够简沽,需要通过代码显式地打开ession ,开始事务,然后关闭事务,最后关闭Session 。而Spring提供更简单的方式操作持久层,无须显式地打开Session ,也无须在代码中执行任何的事务操作语句。
Spring 提供了HibernateTemplate ,用于持久层访问,该模板类无须显示打开Session及关闭Session 。它只要获得SessionFactory 的引用,将可以智能打开Session ,并在持久化访问结束后关闭Session ,程序开发只需完成持久层逻辑,通用的操作则由HibernateTemplate 完成。
事务的处理,当然也可以采用编程式事务。Spring 提供了编程式事务的支持。通常,推荐使用声明式事务,使用声明式事务有如下优点:
·代码中无须实现任何事务逻辑,程序开发者可以更专注于业务逻辑的实现。
·声明式事务不与任何事务策略藕合,采用声明式事务可以方便地在全局事务和局部事务之间切换。
Spring 的声明式事务以Spring 的AOP 为基础,开发者可以不需要对AOP 深入了解,只需按本章后面部分配置声明式事务代理即可。
Spring 对Hibernate 的简化,还得益于Spring 异常处理策略。Spring 认为:底层数据库异常几乎都不可恢复,强制处理底层数据库几乎没有任何意义,但传统JDBC 数据库访问的异常都是checked 异常,必须使用try... 、catch 块处理。
另外, Spring 包装了Hibernate 异常,并转换到DataAccessException 继承树内,所有DataAccessException 全部是runtime 异常,但并不强制捕捉。归纳起来, Spring 对Hibernate 的简化主要有如下几个方面。
·基于依赖注入的SessionFactory 管理机制, SessionFactory 是执行持久化操作的核心组件。传统Hibernate 应用中, SessionFactory 必须手动创建,通过依赖注入,代码无须关心SessionFactory ,而它的创建和维护由BeanFactory 负责管理。
·更优秀的Session 管理机制。Spring 提供"每事务一次Session" 的机制,该机制能大大提高了系统性能,而且Spring 对Session 的管理是透明的,无须在代码中操作Session 。
·统一的事务管理。无论是编程式事务,还是声明式事务, Spring 都提供一致的编程模型,无须烦琐的开始事务、显式提交及回滚。如果使用声明式事务管理,可将事务管理逻辑与代码分离,使事务可在全局事务和局部事务之间切换。
·统一的异常处理机制。不再强制开发者在持久层捕捉异常,通常持久层异常被包装成DataAccessException 异常的子类,将底层数据库异常包装成业务异常,开发者可以自己决定在合适的层处理异常。
• HibernateTemplate 支持类。HibernateTempate 能完成大量Hibernate 持久层操作,这些操作大多只需要一些简单的代码即可实现。
分享到:
相关推荐
通过Spring对Hibernate的管理,我们可以更好地控制事务、实现解耦,同时降低出错的可能性。此外,Spring的AOP支持使得事务管理更加简单,提高了代码的可测试性。在实际项目中,这种集成方式被广泛应用,是Java EE...
Spring MVC 负责处理HTTP请求并将其路由到相应的控制器,Spring 提供了依赖注入(DI)和面向切面编程(AOP),简化了代码管理与模块化,而Hibernate则是持久层框架,负责数据库操作,提供了对象关系映射(ORM)功能...
在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第11部分,重点可能是建立在前几部分的基础之上,进一步深化对这三个核心技术的理解和实践。 ...
标题 "gwt+spring+hibernate" 涉及的是一个使用Google Web Toolkit (GWT)、Spring框架和Hibernate ORM技术的集成示例。这是一个常见的Web应用开发组合,用于构建高效、可扩展且功能丰富的Java web应用程序。下面将...
Hibernate是一个对象关系映射(ORM)框架,它简化了Java应用与数据库之间的交互。在我们的博客系统中,Hibernate负责将博客文章、评论等业务对象映射到数据库表,实现了数据的持久化。通过使用Hibernate,开发者可以...
在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第12部分,将帮助开发者掌握如何在Java Web项目中高效地集成这三个核心框架,实现松耦合、可...
**Hibernate** 是一个强大的对象关系映射(Object-Relational Mapping,ORM)框架,它将数据库操作转化为对Java对象的操作,降低了开发者与SQL的直接交互。HibernateJar包包含了Hibernate的核心API,如Session、...
Hibernate 则是一个强大的对象关系映射(ORM)框架,它简化了数据库操作,将 Java 对象与数据库表进行映射,使得开发者可以使用对象而不是 SQL 来操作数据库。 Spring 和 Hibernate 的整合主要涉及到以下几个方面:...
Spring是一个广泛使用的Java企业级应用开发框架,而Hibernate是一个流行的持久化框架,用于简化数据库操作。这两个库的集成使得开发者能够利用Spring的依赖注入和管理特性,以及Hibernate的对象关系映射(ORM)能力...
SpringMVC作为Spring的一部分,专门用于处理Web层的请求,而Hibernate则是一个强大的对象关系映射(ORM)框架,简化了数据库操作。下面我们将深入探讨"非注解SpringMVC+Spring+Hibernate入门实例"中的关键知识点。 ...
而Hibernate是一个对象关系映射(ORM)框架,它简化了Java应用程序对数据库的操作,使得开发者可以使用面向对象的方式来处理数据库操作。 标题"spring+hibernate整合demo"表明这是一个示例项目,展示了如何将Spring...
4. **Spring与Hibernate的集成**:Spring提供了对Hibernate的全面支持,可以通过SessionFactoryBean配置来管理Hibernate的SessionFactory,并通过HibernateTemplate或HibernateJpaDialect进行数据访问操作。...
首先,Spring通过其优秀的AOP支持,可以实现对Hibernate的事务管理,使得事务的处理更加透明。其次,Spring的ApplicationContext可以加载Hibernate的相关配置,如SessionFactory,进而创建Session对象,进行数据库...
Spring还提供了数据源配置、事务配置以及对Hibernate SessionFactory的管理,通过`@EnableTransactionManagement`开启事务管理。 在实际开发中,我们还会用到Spring的其他功能,比如Spring MVC的拦截器...
而Hibernate2.1则是一个强大的ORM框架,它简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据库。 整合Spring和Hibernate的首要任务是设置项目环境。这通常包括下载并引入相关的jar包,如Spring的核心...
MyEclipse 提供了对 Spring 和 Hibernate 的良好支持,包括自动配置、代码生成、调试等功能,使得开发者可以快速构建基于这两个框架的应用程序,而无需手动完成所有配置。 在 "lib" 文件夹中,通常会包含项目所需的...
这种方法避免了Action对Spring的直接依赖,但需要修改Struts的内部组件。 3. **使用Spring动作代理**:通过Spring AOP创建一个代理,将动作管理交给Spring。这种方式完全解耦了Action和Spring,Action只需要定义...
Spring是一个开源的Java平台,它简化了创建企业级应用的复杂性,而Hibernate则是一个对象关系映射(ORM)工具,用于简化数据库操作。SSH整合指的是将Spring、Struts和Hibernate这三个框架集成在一起,以构建高效、...
这种整合能够充分利用Spring的管理能力,对Hibernate进行配置和控制,同时利用Spring的数据访问支持,如JdbcTemplate或HibernateTemplate,来简化数据操作。 在整合过程中,首先需要配置Spring的ApplicationContext...
在Java企业级开发中,Spring和Hibernate是两个非常重要的框架,Spring作为一个全面的轻量级容器,负责管理和协调应用组件,而Hibernate则是一个强大的对象关系映射(ORM)框架,处理数据库交互。将这两个框架集成...