`

Transaction 事务(锁数据行-2)

 
阅读更多

数据库锁行的另一种方式

        update操作,若指定主键,只有一条记录,则锁行。若不指定,则锁表。

实际测试:



 

 

事务没有提交之前没有行改动



 

打开另一个会话,执行相同语句,等待一段时间后,提示如下错误。


回到第一个会话,提交事务

提交事务后,数据实际改动,另一个会话因为该行有其他事务没有提交所以在等待状态,直到超时后无法执行。



 

项目中测试:

xml:



 

interface:



 

service:



 

controller:



 

测试方法

         同一个项目在两个Tomcat中启动,因为需要在其中一个方法内打断点,所以需要在两个eclipse中操作或者打成war包放入Tomcat/webapps中启动,同时开启两个Tomcat需要更改其中一个的端口号避免端口号占用的问题。

         两个项目都开启好之后,下面正式开启测试。

库存为1时,其中一个进入方法打断点之后,另一个进行同样的操作:



 

在8081的这个上打上断点,断点打在update语句之后



 

然后进入8080,发现8081断点不放开,这边就一直在加载中。。



 

放开断点之后,8081库存-1 成功,8080也加载完成,显示库存不足,达到我们的要求



 



 

  • 大小: 4.1 KB
  • 大小: 26.6 KB
  • 大小: 40.7 KB
  • 大小: 12 KB
  • 大小: 4.3 KB
  • 大小: 26.6 KB
  • 大小: 10.2 KB
  • 大小: 13.8 KB
  • 大小: 63.9 KB
  • 大小: 5.6 KB
  • 大小: 71.9 KB
  • 大小: 34.2 KB
  • 大小: 37.1 KB
  • 大小: 36.8 KB
分享到:
评论

相关推荐

    事务处理--介绍事务原理和事务实现.docx

    在IT领域,事务处理是数据库管理系统中的核心概念,它确保了数据的一致性和完整性。本文将深入探讨事务的原理和实现方法。 1. **什么是事务** 事务是一系列数据库操作的逻辑单元,这些操作要么全部成功执行,要么...

    java事务设计策略

    - **JTA (Java Transaction API)**:提供了跨多个资源管理器的事务管理功能。 - **JDBC事务管理**:适用于单一数据库资源的简单事务管理。 - **EJB容器事务管理**:为EJB组件提供透明的事务支持。 - **Spring框架...

    mysql_innoDB 事务与锁详解

    4. **间隙锁(Gap Locks)和Next-Key Locks**:为了防止“幻读”问题,InnoDB会自动在会话事务中加上间隙锁,锁定数据行之间的“间隙”,并使用Next-Key Locks来锁定索引键及其之前的数据项,从而保证数据的一致性。...

    hibernate5--2.数据持久化及事务

    **hibernate5--2.数据持久化及事务** 在Java开发中,数据持久化是将应用程序中的对象状态保存到数据库中的过程,以便在后续的程序运行中可以恢复这些状态。Hibernate作为一款强大的对象关系映射(ORM)框架,极大地...

    SQL Server 2000完结篇系列之三:数据并发-彻底掌握SQL Server 2000事务机制

    2. 显式事务:在显式事务中,开发人员通过BEGIN TRANSACTION、COMMIT TRANSACTION和ROLLBACK TRANSACTION语句来明确地开始、提交或回滚事务。这种方式提供了更精细的控制,尤其是在处理复杂的业务逻辑时。 3. ...

    事务与锁定的问题 自治事务

    在数据库管理中,事务(Transaction)和锁定(Locking)是保证数据完整性和一致性的重要机制。事务被视为一系列操作的集合,这些操作要么全部成功,要么全部失败,以确保数据状态的统一性和可靠性。锁定机制则用来...

    使用Spring的声明式事务----Annotation注解方式

    隔离级别定义了并发事务之间的数据可见性,如`Isolation.READ_UNCOMMITTED`(读未提交)、`Isolation.REPEATABLE_READ`(可重复读)等。不同的隔离级别可以防止脏读、不可重复读和幻读等问题。 4. 只读事务...

    oracle-事务oracle-transaction信息管理与信息系统.doc

    事务会在修改数据的第一条语句处隐式开始(也就是得到 TX 锁的第一条语句)。也可以使用 SET TRANSACTION 或 DBMS_TRANSACTION 包来显式地开始一个事务。 事务控制语句包括: 1. COMMIT:结束事务,并使得已做的...

    SQL Server 的事务和锁

    SQL Server的事务和锁是数据库管理系统中至关重要的概念,它们保证了数据的一致性和完整性,为多用户环境下的并发操作提供了保障。以下是对这些主题的详细解析: **SQL事务** SQL事务是数据库操作的基本单元,它...

    InnoDB 事务/锁/多版本分析

    - **隐式锁(implicit lock):** 当事务操作未显式加锁的数据时,InnoDB会通过隐式锁来实现锁的功能,避免数据不一致。 ### InnoDB多版本 多版本并发控制(MVCC)是InnoDB实现非锁定读取的关键机制。在MVCC中,...

    Java Transaction Design Strategies.pdf

    - **乐观锁**:假设数据不太可能发生冲突,仅在提交事务时检查数据是否被其他事务修改。 - **版本号**:通过记录数据的版本号来实现乐观锁。 - **时间戳**:类似版本号,但使用时间戳作为版本标识。 #### 七、事务...

    事务与锁的详细介绍与学习

    - **提交事务**:使用`COMMIT TRANSACTION`表示事务完成,数据被正式保存。 - **回滚事务**:使用`ROLLBACK TRANSACTION`取消所有事务中的更改,回到事务开始前的状态。 - **保存点**:使用`SAVE TRANSACTION`...

    Mysql事务以及锁原理讲解.pdf

    总结来说,MySQL事务和锁的原理是保证数据完整性的重要机制。通过合理地使用事务来确保操作的原子性和一致性,并通过锁机制来实现事务的隔离性。理解这些原理对于数据库开发和维护是非常重要的,能够帮助我们编写出...

    数据库,各种锁的概述

    - **定义**:意向锁用于表示事务有意向锁定整个表或某个数据集。 - **意向共享锁(IS)**:表示事务想要获取表上的共享锁。 - **意向排他锁(IX)**:表示事务想要获取表上的排他锁。 - **共享意向排他锁(SIX)...

    ------事务的隔离级别

    - **更新丢失 (Lost Update):** 当两个事务尝试同时更新同一行数据时,如果后一个事务由于某种原因(如异常、错误等)而未能成功提交,那么前一个事务所做的更新可能会被覆盖或丢失,导致数据不一致。 - **脏读 ...

    游标、事务、锁 .pptx

    锁是一种并发控制机制,用来防止多个事务同时访问同一资源而导致的数据不一致问题。 **3.2 引入锁的原因** 由于数据库中的并发操作可能导致数据不一致或丢失更新等问题,因此引入锁机制来保证数据的一致性和准确性...

    Mysql事务以及锁原理讲解

    - **排他锁(Exclusive Locks)**:允许一个事务读取和写入数据项,其他事务无法获取任何类型的锁。 #### 六、应用场景及目标 - **数据库管理员和开发人员**:通过学习事务和锁原理,可以更高效地设计数据库结构,...

    多数据源分布式事务管理调研报告.zip

    - XA:Java中的JTA(Java Transaction API)和JTS(Java Transaction Service)支持XA协议,可以协调多数据源的事务。 - 分布式事务框架:如Atomikos、Bitronix等,提供了基于JTA的分布式事务管理。 - Spring框架...

Global site tag (gtag.js) - Google Analytics