zoukankan      html  css  js  c++  java
  • spring事物 (mu课)

    1.什么是事物,

    事物指在逻辑上的一组操作,这组事物要么全部成功,要么全部失败

    2.事物的的特性:

    原子性:事物是不可分割的单位,要么都发生,要么都不发生

    一致性;指事物前后数据完整性必须保持一致

    隔离性;多个用户并发访问的时候,一个用户的事物不能被其他用户干扰

    持久性:一个事物被提交了,它对数据库的数据的修改是持久性的

    3.spring事物管理的三个接口

    3.1  PlatformTransactionManager   事物管理器

    *rollback(TransactionStatus )

    *commit(TransactionStatus )

    *getTransation(TransactionDefinition)

    3.2  TransactionDefinition事物定义信息(隔离,超时,只读,传播)

    3.3  TransactionStatus 事物具体运行状态

    4.隔离级别

    READ_UNCOMMITED    允许你读取还未提交的数据,可能导致脏,幻,不可重复读

    READ_COMMITTED 允许在并发事物已经提交后读取,但幻读和不可重复读依旧可能发生

    REPEATABLE_READ 对相同字段的多次读取时一致的,除非数据被事物本身改变,但是幻读依旧可以发生,可以防脏读和不可重复读

    SERIALIZABLE 可确保不发生脏,幻,不可重复读

    5.不考虑隔离性,会发生的安全问题如下

    脏读:一个事物读取了另外一个事物改写但未提交的数据,如果这些事物被回滚,则读到的数据是无效

    不可重复读;在同一事物中,多次读取同一数据返回的结果有所不同

    幻读:一个事物读取了几行记录后,另外一个事物插入的一些记录,幻读就发生了

               再后来的查询中,第一个事物就会发生有些原来没有的记录

    6.事物应该在放置在哪层中

    业务层

    7.业务的传播行为

    事物的传播行为:解决了业务层方法之间的相互调用的问题

    propagation_supports  如果aaa里面有事物,则bbb调用aaa的事物,如果aaa无事物,则bbb方法就不调用了

    Propagation_required 如果aaa里面有事物,则bbb就调用aaa里面的事物,否则bbb就创建一个事物,然后把AAA内容包裹进去,即是两者在一个事物中

    Propagation_required_new 如果aaa里面有事物,则bbb就把aaa事物挂起,自己在创建一个新的事物,两者不是在一个事物

  • 相关阅读:
    第8章 降维
    第7章 集成学习和随机森林
    JS利用async、await处理少见的登录业务逻辑
    SQL SERVER 实现多行转多列
    Mysql函数----控制流函数介绍
    继承----静态代码快、构造方法、代码块、普通方法的执行顺序
    RBAC----基于角色的访问权限控制
    秋招-----思特沃克视频面试总结
    tomcat启动失败的三种方法
    索引之----mysql联合索引
  • 原文地址:https://www.cnblogs.com/libaowen609/p/12819676.html
Copyright © 2011-2022 走看看