Hibernate 的持久层访问必须按如下步骤进行:
(1)创建 Configuration 实例。
(2) 创建 SessionFactory 实例。
(3)创建 Session 实例。
(4) 打开事务。
(5) 开始持久化访问。
(6) 提交事务。
(7) 如果遇到异常,回滚事务。
(8) 关闭 Session。
虽然可以采用类似于 HibernateUtils i具类封装了部分过程,但依然不够简沽,需要通过代码显式地打开 Session,开始事务,然后关闭事务,最后关闭 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 持久层操作,这些操作大多只需要一些简单的代码即可实现。
分享到:
相关推荐
Hibernate的持久层访问步骤: 创建Configuration实例 创建SessionFactory实例 创建Session实例 打开事务 开始持久化访问 提交事务 如遇异常,回滚事务 关闭Session 24.3 Spring对Hibernate的简化 24.3.1 概述 Spring...
Hibernate简化了数据访问层的代码,将数据库操作转换为对Java对象的操作,使得开发者无需直接编写SQL语句,而是通过面向对象的方式与数据库进行交互。 在Java开发中,Hibernate作为三大主流MVC框架(Spring、Struts...
2. **基于Hibernate的数据持久层** (Hibernate):这部分是Hibernate框架的核心,用于处理数据持久化的逻辑。 3. **数据库层**:存储实际数据的地方。 整个系统的运行依赖于数据库以及其他配置文件(如 `hibernate....
使用Hibernate Tool的步骤如下: 1. **安装与配置**:首先,需要将Hibernate Tool集成到开发环境中,例如在Eclipse或IntelliJ IDEA中,通过插件市场下载并安装。配置完成后,需要在项目的pom.xml文件中添加...
- **Hibernate**负责持久层的数据存取操作。 #### 2. Spring整合Struts Spring与Struts的整合主要涉及以下几个方面: ##### 3.1 三个小窍门 为了有效地整合Spring和Struts,可以采用以下三个技巧: 1. **使用...
Spring MVC、Spring 和 Hibernate 是Java开发中非常流行的三大框架,它们分别用于Web开发、依赖管理和持久层操作。这个"springmvc spring hibernate整合Demo"旨在帮助初学者理解如何将这三个框架协同工作,实现一个...
创建一个简单的Hibernate应用通常涉及以下步骤:配置Hibernate环境(包括hibernate.cfg.xml文件),创建实体类,编写映射文件,以及编写Session工厂和Session的代码。一个基本的增删查改操作可以展示其简洁的API使用...
在Java的持久层框架中,Hibernate是一个广泛使用的ORM(对象关系映射)工具,它允许开发者将数据库操作转化为对Java对象的操作,极大地提高了开发效率。然而,为了优化数据库访问性能,连接池技术在 Hibernate 中起...
在IT行业中,Spring、Hibernate和Mysql是三个非常重要的开源框架和数据库系统...随着对这些技术的深入理解,你可以进一步优化和扩展系统,比如引入MyBatis作为更轻量级的持久层框架,或者利用Spring Boot简化项目配置。
使用Hibernate进行Java开发的基本步骤如下: 1. **创建Hibernate配置文件**:定义数据库连接参数等配置信息。 2. **创建持久化类**:设计用于表示数据库记录的Java类。 3. **创建对象-关系映射文件**:定义类与...
SpringMVC和Hibernate是Java开发中常用的两大框架,它们分别负责Web层和持久化层的任务。SpringMVC作为Spring框架的一部分,主要用于构建高效、灵活的Web应用程序,而Hibernate则是一个强大的对象关系映射(ORM)...
搭建Spring+Hibernate的DEMO步骤如下: 1. **环境准备**:确保已经安装了Java SDK和Maven,创建一个新的Maven项目,并在pom.xml中添加Spring和Hibernate的依赖。 2. **配置Spring**:创建一个配置文件,如`...
5. **DAO(数据访问对象)和Service层**:Spring可以帮助我们创建DAO和Service层,其中DAO层负责具体的数据操作,而Service层则封装业务逻辑,两者之间通过依赖注入进行通信。 整合步骤大致如下: 1. **配置...
结合 Velocity 模板引擎和 Hibernate 持久层框架,形成了一套高效、灵活且易于维护的 Web 应用开发方案。 #### 二、关键技术介绍 ##### 1. Velocity 模板引擎 Velocity 是一个开源的 Java 模板引擎,由 Jakarta ...
在实际的项目中,整合SpringMVC、Hibernate和Spring的步骤通常如下: 1. **配置环境**:引入相应的jar包,设置数据库连接参数,配置c3p0连接池。 2. **配置Spring**:编写Spring的配置文件,声明并配置DataSource...
Struts+Spring+Hibernate 整合是Java Web开发中常用的一种技术栈,它结合了三个强大的框架,分别负责表现层(Struts)、业务逻辑层(Spring)和持久化层(Hibernate)。这种组合提供了完整的MVC架构,使得开发过程...
Spring还提供了数据访问抽象,可以方便地与Hibernate集成,进行数据库操作。 3. **Hibernate**:Hibernate是一个对象关系映射(ORM)框架,它允许开发者使用Java对象来操作数据库,而不是直接编写SQL语句。通过...
在Java Web开发中,Spring MVC作为控制器层,负责处理用户请求,而Hibernate作为持久化框架,用于管理数据库操作。将这两者结合使用,可以实现MVC架构的高效数据访问。下面我们将详细介绍如何进行hibernate和Spring ...
Hibernate是一个持久层框架,它通过ORM机制将Java对象与数据库表进行映射,使得开发者可以像操作普通Java对象一样操作数据库。Hibernate支持多种数据库,包括MySQL、Oracle、SQL Server等。其核心接口包括Session、...
在Spring Boot 2中集成Hibernate,主要步骤如下: 1. 添加Hibernate和相关的JDBC驱动依赖到`pom.xml`或`build.gradle`文件。 2. 配置数据源和Hibernate properties,包括数据库连接信息、实体扫描路径等。 3. 创建`...