Spring框架学习 四 事务

1 什么是事务

(1)事务是数据库操作最基本单元,逻辑上的一组操作,要么都成功,如果有一个失败,所有都失败

2 举例

(1)银行转账

* 小王 200w,小宋有200w

* 小王 转账 100w 给小宋

** 小王少100w,小宋多100w

3 事务四个特性(ACID)

(1)原子性:要么都成功,如果有一个失败,所有都失败

(2)一致性:操作之前和操作之后,总量不变的

(3)隔离性:多事务之间不会产生影响

(4)持久性:事务最终提交,提交之后数据库里面数据真正变化

 

4 Spring事务管理介绍

1 事务典型例子:银行转账例子

2 事务添加到javaee三层中service层(业务逻辑层)

3 spring对事务进行管理

有两种方式:编程式事务管理 声明式事务管理(使用)

4 一般都使用声明式事务管理

1)声明式事务管理,可以使用注解 ,也可以使用xml配置文件实现

5 spring事务管理使用到底层原理 AOP  

6 Spring事务管理API

1)提供一个接口,代表事务管理器,这个接口里面针对不同的框架提供不同的实现类

 

 

5 Spring声明式事务管理(注解)

1 创建事务管理器对象

    <!-- 1 事务管理器对象创建 -->

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

       <property name="dataSource" ref="dataSource"></property>

    </bean>

2 在配置文件中,开启事务注解

3 在添加事务的方法或者所在类上面添加注解

1)注解@Transactional,这个注解一般都是添加service类上面,可以添加到方法上面。

2)如果把这个注解添加到类上面,为这个类里面所有的方法添加事务

3)如果把这个注解添加方法上面,只是为这个方法添加上事务

 

 

6 事务中的参数配置

1 propagation:事务传播行为

 

    Required:A中有事务,B中有事务,A调用B,使用A的事务,B的事务不开启。

    Required_new: A中有事务,B中有事务,A调用B,A,B的事务都开启,互不影响,new

    意思即为 每次都开启新事务。

2 isolation:事务隔离级别

    事务隔离性使用 隔离级别体现出来的   多个事务并发操作

    隔离级别有四个,记住下面这个

    mysql默认的隔离级别(可重复读  REPEATABLE READ ) 

    

 

 

如果不考虑隔离性,产生三个读问题

    1 脏读(现象)

    (1)一个没有提交事务读到另一个没有提交事务修改的数据,严重问题

 

    2 不可重复读(现象)

    (1)一个提交事务读到了另一个提交事务修改的数据

 

 

    3 虚读(幻读)(现象)

    (1)一个事务读到另一个提交事务里面添加的数据

 

3 readOnly:是否只读

1)读:查询操作。写:添加、修改和删除

2readOnly默认值false,表示可以查询可以添加、修改和删除

3)如果把readOnly设置成true之后,只能查询

 

4 timeout:超时时间

1)规定在一定时间之内必须要提交,如果不提交就会回滚

2)设置时间以秒计算的,默认值-1

 

5 rollBack:回滚

1)设置只有出现哪个异常才会进行回滚

 

6 noRollBack:不回滚

1)设置出现的哪些异常不回滚

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值