mybatis的执行流程

Posted 王久勇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis的执行流程相关的知识,希望对你有一定的参考价值。

 

 

 

 

MapperRegistry中保存了Mapper对应的动态代理对象

MapperProxy 生成对应的代理对象,代理的interface是SqlSession,实现有两种SqlSessionManager和DefaultSqlSession。默认是DefaultSqlSession。
DefaultSqlSession的实在获取Session的时候生成的。
 
sessionFactory.openSession();返回的是DefaultSqlSession。
 
 

 
具体的执行是由StatementHandler执行。
public int update(String statement, Object parameter) {
    int var4;
    try {
        this.dirty = true;
        MappedStatement ms = this.configuration.getMappedStatement(statement);
        var4 = this.executor.update(ms, this.wrapCollection(parameter));
    } catch (Exception var8) {
        throw ExceptionFactory.wrapException("Error updating database.  Cause: " + var8, var8);
    } finally {
        ErrorContext.instance().reset();
    }

    return var4;
}
 
 
this.executor中得到上次获取的executor对象
 

以上是关于mybatis的执行流程的主要内容,如果未能解决你的问题,请参考以下文章

mybatis执行流程源码分析

Mybatis初探索(Mybatis执行流程)

mybatis执行流程

MyBatis源码分析-SQL语句执行的完整流程

MyBatis源码分析-SQL语句执行的完整流程

myBatis执行流程及源码分析