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的执行流程的主要内容,如果未能解决你的问题,请参考以下文章