zoukankan      html  css  js  c++  java
  • Spring 事务

    Spring事务管理机制

    1. Spring 的事务管理机制

    spring事务管理高层抽象主要包括三个接口,spring的事务主要是由他们共同完成的

    • PlatformTransactionManager:事务管理器,被DispatcherServlet使用 ---主要用于平台相关事务管理
    • TransactionDefinition: 事务定义信息(隔离,传播,超时,只读)
      • 事务运行前,是需要被设置的,这个接口定义事务设置的参数
    • TransactionStatus:事务具体的运行状态 --- 会务管理过程中,每个时间点事务的状态信息

    1.1PlatformTransactionManager 事务管理器

    使用管理器,调用它的具体一个实现类

    该接口提供三个方法

    返回值 方法 作用
    TransactionStatus getTransaction(TransactionDefinition definition) 获取事务配置信息
    void commit(TransactionStatus status) 提交事务
    void rollback(TransactionStatus status) 回滚事务

    Spring为不同的持久层框架提供了不同的PlatformTransactionManager接口实现

    事务 说明
    org.springframework.jdbc.datasource.DataSourceTransactionManager 使用JDBC或者IBatis进行持久化数据时使用

    SSM只用到这个,脑补去吧!!!!

    当对应的持久层框架发生改变,对应的实现类也需要改变

    • DataSourceTransactionManager针对JdbcTemplate,Mybatis事务控制,使用Connection(连接)进行事务控制
      • 开启事务 connection.setAutoCommit(false); -- 关闭自动提交
      • 提交事务 connection.commit();
      • 回滚事务 connection.rollback();

    1.2 TransactionDefinition 事务定义信息

    返回值 方法名称 作用描述
    int getIsolationLevel() 获取事务隔离级别
    String getName() 返回当前事务的名称
    int getPropagetionBeavior() 事务的传播行为
    int getTimeout() 事务的超时时间.默认为-1(不超时)
    boolean isReadonly() 事务是否设置为只读

    该接口只有get方法而没有set方法

    • 隔离级别概述
    参数名称 作用描述
    DEFAULT 使用数据库的默认隔离级别
    READ_UNCOMMIT 读未提交
    READ_COMMIT 读已提交
    REPEATABLE_READ 可重复读
    SERIALIZABLE 串行话

    具体描述在WIZ的Mysql文件夹中

    1.3 什么是事务的传播行为

    如 A 和 B 两个方法都有对数据库的操作, 在使用事务的情况下, 同时调用,或者分开调用 多个对数据库的操作,

    这种调用方式的区分叫做事务的传播行为

    1.4TransactionStatus 事务信息类

    返回值 方法名 描述
    void flush() 给一些ORM框架使用,用来执行sql语句
    boolean hasSavapoint() 是否有保留点(不执行的部分)
    boolean isCompleted() 是否执行完成
    boolean isNewTransaction() 是否是一个新开的事务
    boolean isRollbackonly 是否只回滚
    void setRollbackonly 设置是否为知回滚

    2.三个超级接口之间的关系

    1. 要进行事务管理,必须要配置TransactionManager(事务管理器) 进行事务管理

    2. 然后根据TransactionDefinition(事务定义信息),通过TransactionManager(事务管理器)进行事务管理

    3. 在事务的运行过程中,每个时刻都也已使用TransactionStatus(事务状态) 来查看当前的事务信息

  • 相关阅读:
    android之下载416错误
    eclipse之常用工具总结
    php之Callback 回调类型
    smarty的自定义函数
    Unable to open sync connection异常
    android之android Studio 安装后打不开的解决方法
    android之ExpandableListView 的滑动到底部的精确监听事件
    wampserver2.0下配置虚拟主机
    wc之初认识
    php开发中常见函数记录
  • 原文地址:https://www.cnblogs.com/lyuweigh/p/10079968.html
Copyright © 2011-2022 走看看