`
tianke66
  • 浏览: 183158 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

Spring 对Hibernate 的简化

阅读更多

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 持久层操作,这些操作大多只需要一些简单的代码即可实现。

分享到:
评论

相关推荐

    第24次课-1 Spring与Hibernate的整合

    24.3 Spring对Hibernate的简化 24.1 概述 24.1.1 概述 Spring提供了很多IoC特性的支持,方便处理大部分典型的Hibernate整合问题。 如:SessionFactory的注入、HibernateTemplate的简化操作、DAO的支持等。 为了更好...

    MyEclipse开发SSH2(Struts2+Spring+Hibernate)应用教程

    MyEclipse开发SSH2(Struts2+Spring+Hibernate)应用教程——根据软件工程原则简化实现的JSP+J2EE入门教程 摘要:SSH2(Struts2+Spring+Hibernate)是当前开发Java动态网站的流行框架。虽然其涉及的技术较为繁杂,...

    spring+hibernate3.2+struts2.0 注解

    spring+hibernate3.2+struts2.0 注解,超级简化,省略hbm.xml、bean注入xml配置等,一切annotation

    项目申报系统(Struts2+Spring+Hibernate+Jsp+Mysql5)130223.rar

    Hibernate作为ORM框架,负责将对象与数据库表进行映射,简化了数据库操作。其次,该系统使用Jsp作为前端展示层,提供了丰富的用户界面和交互功能。用户可以通过浏览器访问系统,进行项目申报、查询、修改等操作。...

    dwr+spring+hibernate的示例

    1、在dwr中尝试编写的一些通用的代码,... <br>3、如何在spring中实现单dao,使这个单dao既可以与hibernate隔离,使其低耦合高内聚,提高可维护性,又能满足各个bus的业务需要,简化开发的过程。(转载分享) <br>

    hibernate + spring 简化包

    下载和安装Spring请按如下步骤进行。  (1)登录http://www.springframework.org/download站点,下载Spring的最新稳定版本。最新版本为Spring Framework 2.5.5.建议下载 spring-framework-2.5.5-with-dependencies....

    移动ssh项目(struts+spring+hibernate+oracle)130222.rar

    130222.rar文件是一个精心打包的计算机专业JSP源码资料包,它集成了当前流行的Web开发框架:Struts, Spring, Hibernate以及Oracle数据库。此项目资料包为开发者提供了一个全面的、可立即部署的开发环境,旨在帮助...

    项目申报系统(Struts2+Spring+Hibernate+Jsp+Mysql5)源码.zip

    通过Hibernate框架的ORM映射机制,实现了对象与数据库之间的无缝对接,简化了数据操作过程。 此外,该系统源码还具备高度的可扩展性和可定制性。开发者可以根据实际需求,轻松地对系统进行二次开发与功能扩展。同时...

    ext+Json+dwr+spring+hibernate整合项目实例与资源

    我们一般会使用遵循MVC设计模式的Struts来规范程序结构,使用优秀的ORM组件Hibernate来简化数据库访问操作,使用系统黏合剂Spring来提高开发效率,使用异步访问的Ajax来提高用户体验。而今天我们要做的一个demo是一...

    ssh(structs,spring,hibernate)框架中的上传下载

    其实现类是apache的BasicDataSource,第11~25行定义了Hibernate的会话工厂,会话工厂类用Spring提供的LocalSessionFactoryBean维护,它注入了数据源和资源映射文件,此外还通过一些键值对设置了Hibernate所需的属性...

    Spring MVC3和Hibernate3整合的源码

    昨天上传的不怎么好,今天上传的,是使用更多的注解,简化更多的配置文件,增加了service层。

    项目申报系统(Struts2+Spring+Hibernate+Jsp+Mysql5).zip

    该系统利用了Java EE技术栈中的一些最强大的技术,包括Struts2用于MVC架构的Web层,Spring框架用于依赖注入和事务管理,Hibernate作为ORM工具以简化数据库操作,JSP用于前端页面的展示,以及MySQL 5数据库用于持久化...

    使用 Spring Data JPA 简化 JPA 开发 sample code

    这是 《使用 Spring Data JPA 简化 JPA 开发》的sample code。原文在 http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-jpa/index.html

    Struts + Spring + Hibernate整合开发

    Spring是一个开源的控制反转(Inversion of Control ,IoC)和面向切面(AOP)的容器框架.它的主要目得是简化企业开发. IOC 控制反转 PersonDaoBean 是在应用内部创建及维护的。所谓控制反转就是应用本身不负责依赖对象的...

    java_jsp项目源码_项目申报系统(Struts2+Spring+Hibernate++Mysql5)130223.rar

    项目申报系统是一个基于Struts2、Spring、Hibernate和MySQL5技术的综合信息管理平台,旨在简化项目申报流程,提高管理效率。该系统适用于各类企事业单位、政府部门和其他组织,可支持项目申报、审核、跟踪和统计分析...

    Web开发工具和方法课程的学术项目Java、Spring、Hibernate、Angular

    Java SSM项目是一种使用Java语言和SSM框架(Spring + Spring MVC + MyBatis)开发的Web应用程序。SSM是一种常用的Java开发框架组合,它结合了Spring框架、Spring MVC框架和MyBatis框架的优点,能够快速构建可靠、...

    基于spring+springmvc+hibernate的在线招标系统设计与实现【源码+lw+部署文档+讲解】

    适合人群:对招标流程管理有兴趣的开发人员或学生,具有Spring + Spring MVC + Hibernate框架基础的人群。 能学到什么:①学习如何使用Spring + Spring MVC + Hibernate框架构建一个实际的企业级应用;②了解招标...

    java_jsp项目源码_项目申报系统(Struts2+Spring+Hibernate++Mysql5).rar

    项目申报系统是一个基于Struts2、Spring、Hibernate和MySQL5技术的综合信息平台,旨在简化项目申报流程,提高管理效率。该系统适用于各类企事业单位、政府部门和其他组织,支持多用户同时在线操作,实现信息的集中...

    移动ssh项目(struts+spring+hibernate+oracle)130222.rar.tar.gz

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot...

Global site tag (gtag.js) - Google Analytics