`
hhr_michael
  • 浏览: 74328 次
  • 性别: Icon_minigender_1
  • 来自: 惠州
社区版块
存档分类
最新评论

struts2+hibernate3+spring2读书笔记13(Hibernate的事务控制)

阅读更多
                                    第14章 Hibernate事务控制  
本章导读语
      在日常生活中,常常会遇到一组依赖的操 作行为,例如在网上进行交易时,它分为多个步骤,当其中一个步骤发生异常时,视为个操作不成功,因此需要将状态变到最初始的状态,这种情况可称为事务。

一. 数据库的ACID特征

        1.Atomic(原子性):事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。

2.Consistency(一致性):事务在完成时,必须使所有的数据都保持一致状态。

3. Isolation(隔离性):由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。

4.Durability(持久性):事务完成之后,它对于系统的影响是永久的,该修改即使出现致命的系统故障也将一直保持。


二.事务边界分为如下3种:

1. 开始边界:开始事务。
2. 正常结束边界:提交事务。
3. 异常结束边界:回滚事务。

在Hibernate中,提供了这3种边界的操作方法,开始边界使用的是Session接口的beginTransaction()方法,正常结束边界使用的是Transaction提供的commint()方法,异常结束边界的是Transaction()接口提供的rollback()方法,在MySQL中,INNODB和BOB类型的表是支持事务的,而默认的表类型MyISAM并不支持事务,所以开发人员在创建表时需要执行表类型为INNODB或BOB,或通过:
Alter table 表的名称 type=INNODB;修改表的类型为支持事务的类型。

三. 常见的事务并发问题

1. 脏读:一个事务(事务甲)读到另一个事务(事务乙)未提交的更新数据,并且事务甲在数据上进行了更新操作,接关事务乙撤消了更新操作,此时事务甲操作的就是脏读。

2. 虚读:一个事务(事务甲)读到另一个事务(事务乙)已提交的新插入的数据

3. 不可重复读:一个事务(事务甲)读到另一个事务(事务乙)已提交的更新数据

4. 第一类丢失更新:一个事务在撤销事务时,将其事物已提交的更新数据覆盖。

5. 第二类丢失更新:一个事务覆盖另一个事务已提交的更新数据。


四. 数据库的锁机制

1. 数据库级锁:锁定整个数据库。
2. 表级锁:锁定一个表。
3. 区域级锁:锁定数据库的指定区域。
4. 页面级锁:锁定数据库的特定页面。
5. 键值级锁:锁定带有索引的一行数据。
6. 行级锁:锁定表中的单行数据。
7. 共享锁:用于读数据操作,允许其他事务同时读取锁定的资源,但不允许其他事务对锁定的资源进行更新。
8. 独占锁:适用于更新数据的场合,不允许其他事务读取或修改其锁定的资源。
9. 更新锁:在更新操作的初始化阶段用来锁定可能要修改的资源。

分享到:
评论

相关推荐

    使用Struts + Spring + Hibernate完成用户登陆笔记

    "使用Struts + Spring + Hibernate完成用户登陆笔记" 在本文中,我们将结合Struts、Spring和Hibernate三种技术来完成用户登陆系统的实现。下面是相关的知识点总结: 一、Struts框架简介 * Struts是一个基于MVC...

    Struts2 + Spring + Hibernate + DWR 项目布署笔记

    "Struts2 + Spring + Hibernate + DWR"是一个常见的Java Web开发框架组合,用于构建动态、数据驱动的Web应用程序。这个项目部署笔记将深入探讨这四个组件的核心功能以及它们如何协同工作。 首先,Struts2是一个基于...

    spring+hibernate+struts2 +mybatis整合笔记

    ### Spring+Hibernate+Struts2+MyBatis 整合笔记 #### 一、SSM框架简介及整合意义 SSM框架是指Spring、SpringMVC和MyBatis三个开源框架的整合,通常用于快速开发Java Web应用。本篇笔记主要介绍如何将Spring、...

    SSH项目(spring+hibernate+struts2)

    2. **事务管理**:Spring提供了声明式和编程式事务管理,简化了事务控制。 3. **集成其他框架**:Spring与Hibernate、Struts2等框架无缝集成,提供统一的入口点和调度机制。 **Hibernate**是一个强大的对象关系映射...

    struts2+hibernate+spring三大框架知识点笔记

    Struts2、Hibernate和Spring是Java开发中三大主流框架,它们各自解决了Web开发中的不同问题,结合使用可以构建出高效、可维护的大型企业级应用。以下是对这三大框架及其结合使用的知识点详解。 **Struts2框架** ...

    Struts2笔记+Hibernate3.6笔记+Spring3笔记

    SSH是Java开发中广泛使用的三大框架——Struts2、Hibernate和Spring的缩写。这三大框架结合使用,能够构建高效、灵活的企业级Web应用程序。现在,让我们深入探讨这些框架的知识点。 **Struts2笔记** Struts2是MVC...

    struts2+spring+hibernate 做的图书管理系统

    内涵数据库设计模型 和数据库设计代码! 图书管理系统: 数据库使用的mysql 里面的发送e-mail我用的是一个我申请的邮箱在测试 可以用自己的! 代码功能基本都有注释.... 才学完s2sh的入门笔记吧! 供学习使用........

    轻量级J2EE企业应用实战--Struts+Spring+Hibernate整合开发笔记

    轻量级 J2EE 企业应用实战 -- Struts+Spring+Hibernate 整合开发笔记 本资源为轻量级 J2EE 企业应用实战开发笔记,涵盖 Struts、Spring 和 Hibernate 三大框架的整合开发实践。笔记从 JDK 安装和配置环境变量开始,...

    spring+hibernate+jpa+struts1+struts2+springmvc+jquery+freemaker 学习笔记 案例.rar

    spring+hibernate+jpa+struts1+struts2+springmvc+jquery+freemaker 学习笔记 Compass将lucene、Spring、Hibernate三者结合

    jsp+tomcat+Struts2+Spring+Hibernate应用实例.rar

    标题中的"jsp+tomcat+Struts2+Spring+Hibernate应用实例"揭示了一个基于Java Web技术的项目构建,其中涉及到的主要技术栈包括JSP、Tomcat服务器、Struts2、Spring和Hibernate。这个实例可能是一个典型的MVC(Model-...

    struts+hibernate+spring读书笔记

    Struts、Hibernate和Spring是Java开发中非常重要的三个开源框架,它们各自负责应用程序的不同层面,共同构建了企业级应用的“铁三角”。这篇读书笔记将深入探讨这三个框架的核心概念、功能以及它们之间的协同工作...

    Struts+Spring+Hibernate

    Struts+Spring+Hibernate整合笔记

    struts2+hibernate+spring的几篇入门用网文

    3. "MyEclipse下struts2、spring、hibernate整合 - 技术频道 IT168.mht":这篇文档可能详细描述了在MyEclipse中整合这三大框架的具体步骤,包括添加库、配置web.xml和struts.xml、Spring的bean配置以及Hibernate的...

    Struts 2 + Spring 2.0 + Hibernate 3.0

    Struts 2 + Spring 2.0 + Hibernate 3.0整合笔记

    struts+spring+hibernate学习笔记

    这个“struts+spring+hibernate学习笔记”应该涵盖了这三个框架的基础知识以及如何将它们整合使用的详细教程。 Struts是一个基于MVC(Model-View-Controller)设计模式的开源框架,主要用于控制Web应用的流程。它...

    SSH(Struts1.0+Spring+Hibernate)框架集成笔记

    ### SSH(Struts1.0+Spring+Hibernate)框架集成笔记 #### 一、概述 SSH框架集成,即Struts1.0 + Spring + Hibernate框架的整合应用,是Java Web开发中较为复杂的集成模式之一。它集合了MVC设计模式(通过Struts...

    Struts+Spring+Hibernate整合笔记

    总的来说,SSH整合提供了强大的企业级应用开发能力,通过合理的分工,使得Struts负责控制流程,Spring处理业务逻辑和依赖注入,Hibernate处理数据持久化,同时通过Log4J进行日志跟踪,提高了开发效率和代码质量。...

    Struts 2 + Spring 2.0 + Hibernate 3.0整合笔记

    Struts 2、Spring 2.0 和 Hibernate 3.0 是Java开发中经典的MVC框架组合,它们各自负责不同的职责,共同构建了一个强大的企业级应用架构。在本笔记中,我们将深入探讨这三个框架的整合过程及其核心概念。 **Struts ...

    药店管理系统 struts+spring+hibernate

    1 开发环境 d6 up2,sqlserver2000, win2000 server 1024*768(笔记本电脑) c/s 2 第三方控件,ehlib2.1,fastreport2.45,xpmenu,snccurrency ,(有可能用到express bar 但是可以在umain删除引用单元,因为没用到)...

    SSH整合学习笔记之struts2+spring+hibernate+c3p0源码

    在SSH整合中,Spring作为容器管理Struts2和Hibernate的实例,同时也负责事务管理,保证数据的一致性。 **Hibernate** 是一个流行的ORM(对象关系映射)框架,它可以将Java对象与数据库表进行映射,使得开发者可以...

Global site tag (gtag.js) - Google Analytics