当前位置 博文首页 > 龚厂长的博客:Seata解析-RM执行SQL语句原理详解

    龚厂长的博客:Seata解析-RM执行SQL语句原理详解

    作者:[db:作者] 时间:2021-07-26 20:57

    本文基于seata 1.3.0版本

    seata使用DataSourceProxy对数据源进行代理,程序中执行分支事务相关的操作都是基于该代理数据源完成的。本文将详细分析RM如何基于代理数据源完成一条SQL语句的执行。
    使用JDBC操作数据库的伪代码一般为:

    Connection conn=dataSource.getConnection();
    Statement state=conn.createStatement();
    state.execute(sql);
    或者
    Connection conn=dataSource.getConnection();
    PrepareStatement state=conn.prepareStatement(sql);
    state.execute();
    
    conn.commit();
    conn.rollback();
    conn.close();
    

    接下来也将按照上述代码流程分析RM如何执行SQL。

    文章目录

    • 一、分支事务获取数据库连接
    • 二、创建Statement或者PrepareStatement
    • 三、分支事务执行SQL
      • 1、StatementProxy执行
        • 1.1、PlainExecutor
        • 1.2、InsertExecutor
        • 1.3、UpdateExecutor
        • 1.4、DeleteExecutor
        • 1.5、SelectForUpdateExecutor
        • 1.6、MultiExecutor
      • 2、PreparedStatementProxy执行
    • 四、分支事务提交
    • 五、分支事务回滚
    • 六、分支事务关闭连接
    • 七、总结
    cs
    下一篇:没有了