码迷,mamicode.com
首页 > 其他好文 > 详细

mybatis的执行流程

时间:2017-07-13 21:46:37      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:ace   .com   return   img   int   pen   dstat   catch   cep   

技术分享

 

技术分享

 

 技术分享

 

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的执行流程

标签:ace   .com   return   img   int   pen   dstat   catch   cep   

原文地址:http://www.cnblogs.com/wangjiuyong/p/7162598.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!