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

事务模块设计原则

SQL 
阅读更多

废话不多说,直接开始正题。

首先从事务的原则说起:

 

  · 原子性  

   表示组成一个事务的多个数据库操作是一个不可分隔的原子单元,只有所有的操作执行成功,整个事务才提交,事务中任何一个数据库操作失败,已经执行的任何操作都必须撤销,让数据库返回到初始状态;


  · 一致性  
   事务操作成功后,数据库所处的状态和它的业务规则是一致的,即数据不会被破坏。如从A账户转账100元到B账户,不管操作成功与否,A和B的存款总额是不变的;

  · 隔离性  
   在并发数据操作时,不同的事务拥有各自数据空间,它们的操作不会对对方产生干扰。准确的说,并非要求做到完全无干扰,数据库规定了多种事务隔离级别,不同隔离级别对应不同的干扰程度,隔离级别越高,数据一致性越好,但并发性越弱; 

  · 持久性  
   一旦事务提交成功后,事务中所有的数据操作都必须被持久化到数据库中,即使提交事务后,数据库马上崩溃,在数据库重启时,也必须能保证能够通过某种机制恢复数据。

 

数据库系统的责任和我们的wc中事务模块的任务:

  在这些事务特性中,数据“一致性”是最终目标,其它的特性都是为达到这个目标的措施、要求或手段。数据库管理系统一般采用重执行日志保证原子性、一致性和持久性,重执行日志记录了数据库变化的每一个动作,数据库在一个事务中执行一部分操作后发生错误退出,数据库即可以根据重执行日志撤销已经执行的操作。此外,对于已经提交的事务,即使数据库崩溃,在重启数据库时也能够根据日志对尚未持久化的数据进行相应的重执行操作。因此,我们不必关心数据库事务的物理完整性,而应该关注在什么情况下使用数据库事务、事务对性能的影响,如何使用事务等等。

        具体到我们的代码中应该是什么样呢?

首先看看在一个方法内的事务:

一般我们会这么写代码:

 

Connection conn=null; Statement stmt=null; try{ conn=JdbcUtils.getConnection(); conn.setAutoCommit(false); stmt=conn.createStatement(); stmt.execute("sql语句1"); stmt.execute("sql语句2"); conn.commit(); }catch(SQLException e){ try{ conn.rollback(); }catch(SQLException e){ e.printStackTrace(); } }finally{ JdbcUtils.close(conn,stmt); }

 

 

分享到:
评论

相关推荐

    系统功能模块设计文档

    在本文中,我们将深入探讨系统功能模块设计的基本概念、设计原则、常见模块及其职责,以及如何编写高质量的设计文档。 首先,我们要理解什么是系统功能模块。在软件工程中,系统功能模块是指将复杂系统分解成可管理...

    微服务处理分布式事务模块

    "微服务处理分布式事务模块"正是为了解决这一问题而设计的。下面将详细探讨微服务环境下的分布式事务处理及其关键技术。 首先,理解什么是分布式事务。在单体应用中,事务管理相对简单,因为所有操作都在同一数据库...

    VB公司事务管理系统论文及毕业设计_开题报告

    - **设计原则**: 功能全面、操作简便、易于扩展。 #### 六、系统开发流程 - **需求分析**: 明确系统所需实现的功能和性能指标。 - **设计阶段**: 包括数据库设计和应用程序设计两大部分。 - **编码实现**: 根据设计...

    分布式事务.zip

    ACID(原子性、一致性、隔离性、持久性)原则是传统单体数据库事务遵循的原则,但在分布式环境下难以直接实现。因此,引入了CAP(一致性、可用性、分区容错性)理论,帮助我们权衡分布式系统的设计。 TX-LCN正是为...

    分布式事务.pdf

    数据库的ACID原则保证了本地事务的可靠性,但在分布式系统中,这些原则就显得力不从心。为了解决这个问题,CAP理论和BASE理论被提出。 CAP定理(布鲁尔定理)指出,一个分布式计算系统不可能同时满足以下三点:一致...

    基于.NET高校办公自动化系统功能模块设计.pdf

    3. 模块化的设计原则:系统应基于业务需求的变化而动态调整,因此设计上要注重系统的灵活性和功能的可扩展性。 4. 权限细分原则:办公自动化系统要兼顾不同用户角色的权限管理,系统应提供可靠性和管理性。 文档中...

    学生班级事务管理系统概要设计说明书

    模块的外部设计和功能分配则界定了各个模块的职责,例如学生管理系统负责学生信息的输入输出,课程管理系统处理课程信息,班级管理系统则处理班级相关的事务。这种模块化的思路有助于降低系统的复杂性,并便于分工...

    行业分类-设备装置-触控显示模块以及具有触控显示模块的事务机.zip

    可能包括了触控屏的材料选择、驱动电路设计、抗干扰措施、人机交互设计原则等内容。通过对这份文档的深入学习,我们可以更好地理解触控显示模块在事务机中的核心地位和重要作用,以及如何设计和选用合适的触控显示...

    Java面试宝典基础篇1——设计模式和分布式事务.pdf

    掌握这些设计原则,对于设计出高质量、易维护的软件系统至关重要。 在回答分布式事务和设计模式相关的问题时,应聘者应该能够结合具体的业务场景,展示对相关概念的深入理解及实际应用能力,以便在面试中脱颖而出。...

    2022年市场-软件系统构架设计原则和面向服务的系统构架.pptx

    微软总部中国事务办公室的栾跃(Bill Luan)Lead Program Manager在演讲中提到了软件系统构架设计原则和面向服务的系统构架的重要性。他认为,软件系统构架设计原则和面向服务的系统构架是企业信息系统发展的未来...

    java六大设计原则 个人见解层次分明

    Java六大设计原则是软件开发中不可或缺的指导方针,它们为编写可维护、可扩展和可重用的代码提供了坚实的基础。这些原则不仅适用于Java,也适用于其他面向对象编程语言。以下是对这六大设计原则的详细解释: 1. ...

    面向对象 7 个 设计原则

    面向对象设计原则是软件开发中不可或缺的一部分,它们指导着我们如何构建可维护、可扩展、易于理解的系统。本文将详细解析七个核心的面向对象设计原则,并结合具体例子来阐述其重要性和应用。 1. 单一职责原则...

    个人事务管理系统

    总体来看,个人事务管理系统是一个功能全面、设计合理的个人生活助手,不仅满足了用户对日常事务管理的基本需求,还通过简洁的界面和强大的数据管理能力,提升了用户体验,使得个人事务管理变得更加高效有序。

    软件开发工具-美食网-公共模块设计.pdf

    在软件开发中,公共模块设计是构建高效、可维护的系统的关键部分。这份实验报告涉及的是使用Visual Studio 2010(VS2010)进行一个美食网的公共模块设计,主要关注数据库操作的封装。下面我们将深入探讨其中涉及的...

    安卓事务管理系统,带界面

    1. **用户界面设计**:在“美化”标签的指导下,此系统采用了现代、简洁且用户友好的设计原则。界面元素如按钮、输入框、列表视图等都经过精心设计,提供一致的视觉体验。色彩搭配、图标设计以及布局结构都体现了...

    系统总体设计原则(信息化项目).doc

    系统总体设计原则是信息化项目的核心指导思想,它涵盖了多个方面的考量,确保系统建设的高效、稳定和可持续性。以下是对这些原则的详细说明: 1. 统一设计原则:这一原则强调了整体规划和一致性的设计,确保系统...

    InnoDB事务、锁、多版本分析

    事务结构包括了全局唯一的trx_sys模块,它维护了事务的分配、提交和回滚等关键操作,以及事务链表和ReadView链表。每个事务有自己的事务对象,包含事务号、XID(用于XA事务)以及相关的锁和等待锁信息。事务的主要...

Global site tag (gtag.js) - Google Analytics