mybatis源码分析

MapperProxy.invoke
-->获取MapperMethod(创建SqlCommand,MethodSignature对象,MapperMethod的属性)
-->MapperMethod.execute
-->{
    switch(SqlCommand)
    case insert:
        SqlSession.insert break;
    case update:
        SqlSession.update break;
    case delete:
        SqlSession.delelte break;
    case select: 
        sqlSession.select or
        sqlSession.selectOne  or
        sqlSession.selectList or
        sqlSession.selectCursor or
        sqlSession.selectMap break;
}
-->获取MapperStatemnt(<-configuration.getMappedStatement)

-->{
    sqlSession.insert or
    sqlSession.update or
    sqlSession.delete or
    执行executor.update;
    
    sqlSession.selectCursor
    执行Executor.queryCursor ;
    others:
    执行Executor.query
}

-->Plugin.invoke

->{
    有拦截器:interceptor.intercept
    没拦截器:Executor.query or Executor.queryCursor,executor.update
}
->获取BoundSql
->创建CacheKey
->创建StatementHandler
->获取Statement
->handler.query
->ps.execute
->ResultHandler.handleResultSets

转载于:https://my.oschina.net/u/3506422/blog/1538141

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值