栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring之事务配置

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring之事务配置

目录

1、什么是事务?

2、事务特性(ACID)

2.1、原子性(Atomicity)

2.2、一致性(Consistency)

2.3、隔离性(Isolation)

2.4、持久性(Durability)

3、事务的并发问题

3.1、脏读

3.2、不可重复读

3.3、幻读

4、事务配置


1、什么是事务?

        事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有
操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所
有操作完成,事务则提交,其修改将作用于所有其他数据库进程。如果一个操作
失败,则事务将回滚,该事务所有操作的影响都将取消。

2、事务特性(ACID)

2.1、原子性(Atomicity)

        事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中 出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分 割的整体,就像化学中学过的原子,是物质构成的基本单位。

2.2、一致性(Consistency)

        事务开始前和结束后,数据库的数据完整性约束没有被破坏,事务前后操作数据是一致的 。比如 A向B转账,不可能A扣了钱,B却没收到。

2.3、隔离性(Isolation)

        一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是 隔离的,并发执行的各个事务之间不能互相干扰。比如A正在从一张银行卡中取钱,在A取钱的过 程结束前,B不能向这张卡转账。 两个事务之间是有隔离级别,隔离级别的不同会导致出现不同的问题。此时产生三种读: 脏读 幻读 不可重复读。

2.4、持久性(Durability)

      持久性(durability)。持久性也称永久性(permanence),指一个事务一旦提交,它对数据库 中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

3、事务的并发问题

3.1、脏读

        事务A读取了事务B的更新的数据,然后B回滚操作,那么A读取的就是脏数据。  

3.2、不可重复读

        事务A多次读取同一数据,事务B在事务A多次读取的过程中,对数据做了更新并提交,导致事务A多次读取同一数据时,结果不一致。

3.3、幻读

        已知有两个事务A和B,A从一个表中读取了数据,然后B在该表中插入一些新数据,导致A再次读取同一个表,就会多出几行,简单来说,一个事务中先后读取一个范围的记录,但每次读取的纪录数不同,称为幻像读。

4、事务配置

引入依赖


      org.springframework
      spring-tx
      5.2.15.RELEASE

spring.xml配置

//注册事务 

        
    
    //开启事务注解 transaction-manager可以不写但名字必须是transactionManager
    

注解配置

//加到方法上
@Transactional
@Override
public Result selectLoginLog(Integer pageNum, Integer pageSize, Map map) {

		PageHelper.startPage(pageNum, pageSize);

		List list = loginLogMapper.selectLoginLog(map);

		PageInfo pageInfo = new PageInfo<>(list);

		return list.size() == 0 ? Result.success("没有数据") : Result.success(pageInfo);
}
//加到类上
@Transactional
public class test{
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1007344.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号