美文网首页
事务的实现

事务的实现

作者: zjkdifvpwlkqumn | 来源:发表于2020-07-21 16:41 被阅读0次

基本逻辑比较清晰的文章 :
https://blog.csdn.net/u010853261/article/details/78118619/
断点跟着流程走的,很详细的文章
https://www.jianshu.com/p/8ff9201ed7d6

Mybatis自己封装了两种事务实现方式:

JDBC:就是按照 jdbc 的方式来控制事务的提交、回滚和关闭等操作,Mybatis 对其进行了一下封装,底层调用的还是jdbc的具体实现。以 Mysql 为例,如果Mybatis设置了事务管理器为 JDBC,那么在执行事务操作 commit、rollback 方法时,实际调用的是
mysql-connector-java-xxx.jar 中 ConnectionImpl 类里的 commit、rollback、close方法。下面会简单分析下 ConnectionImpl 类中事务实现源码。
MANAGED:选择这种方式时,Mybatis 会释放事务管理权,并将事务交由外部容器管理,如与 Spring 整合时,会将事务交给 Spring 中的事务实现类 SpringManagedTransaction 来管理。


如果mybatis没实现自己的 transactionFactory ,就用SpringManagedTransactionFactory
SpringManagedTransaction持有dataSource,可以创建connection
org.mybatis.spring.SqlSessionFactoryBean

    if (this.transactionFactory == null) {
        this.transactionFactory = new SpringManagedTransactionFactory();
    }
    Environment environment = new Environment(this.environment, this.transactionFactory, this.dataSource);
    configuration.setEnvironment(environment);

Mybatis配置文件中事务类型的配置方式:

<configuration>
    <--省略其他配置-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driverClasss}"/>
                <property name="url" value="${jdbcUrl}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
</configuration>

相关文章

  • [二]事务原则与实现

    导航 一. 事务的原则 二. SQL实现数据库事务管理 三. JDBC实现事务管理 一. 事务的原则 事务的描述事...

  • Spring框架AOP源码分析(三):手写Spring事务框架

    1.编程事务实现 所谓编程式事务指的是通过编码方式实现事务,即类似于JDBC编程实现事务管理。管理使用Transa...

  • SSM spring 2

    1 Spring 事务实现方式、事务的传播机制、默认的事务类别 Spring事务的1+3种实现方式、7种传播行为、...

  • 10.Spring中事务控制

    1.基于XML的AOP实现事务控制 2.基于注解的AOP实现事务控制 基于注解的AOP实现事务控制,方便演示,我们...

  • Mysql基础——事务

    内容 事务事务基本知识事务特性如何实现的?快照读和当前读 分布式事务XA规范mysql基于XA实现的分布式事务my...

  • 事务的实现

    隔离性由锁来实现。 原子性和持久性 由 redo log(重做日志)来保证。 一致性由 undo log来保证。 ...

  • 事务的实现

    基本逻辑比较清晰的文章 :https://blog.csdn.net/u010853261/article/det...

  • 基于JQuery实现的todolist(1)

    前言 利用 jQuery 实现的PC端事务管理应用,能够对事务进行增删改,查看事务的详情信息,标记完成事务以及实现...

  • spring 事务管理

    基于aop, 实现事务管理 service层的第一个非事务方法调用事务方法, 会导致事务失效. 由于aop 的实现...

  • Spring声明式事务和编程式事务介绍

    编程式事务:所谓编程式事务指的是通过编码方式实现事务,即类似于JDBC编程实现事务管理。管理使用Transacti...

网友评论

      本文标题:事务的实现

      本文链接:https://www.haomeiwen.com/subject/drxwkktx.html