美文网首页mybatis
mybatis 源码总结

mybatis 源码总结

作者: 晴天哥_王志 | 来源:发表于2020-08-01 07:47 被阅读0次

    这篇文章主要是关于mybatis的源码阅读的几个核心概念的介绍。

    • mybatis的核心逻辑在于All-In-Configuration,所有配置的解析最终都会保存在Configuration当中。

    • 针对mapper.xml的配置文件的解析,整个解析可以按照官网的文档了解大概逻辑,没有必要细究。

    • Configuration的核心变量MapperProxyFactory,负责保存mapper配置文件的namespace即Dao的Interface类和对应的MapperProxyFactory。

    • Configuration的核心变量mappedStatements,负责保存mapper配置文件的namespace+SQL语句的id和对应的SQL语句的mappedStatement。

    • MapperProxyFactory的作用在于针对DAO层接口生成Mapper的动态代理Proxy,意味着DAO有对应的Proxy,针对Dao的方法的调用都是会走到mapperProxy。

    • 针对Mybatis的使用过程可以为四步骤:1、解析mapper.xml并生成SqlSessionFactory对象;2、通过SqlSessionFactory对象返回sqlSession对象;3、通过sqlSession对象获取对应的Dao的代理mapperProxy;4、通过mapperProxy对象执行SQL语句。

    • 针对mapperProxy的执行过程,mapperProxy本身是Dao的interface的代理,在执行代理方法的时会创建MapperMethod对象,所有的执行由MapperMethod去执行。

    • MapperMethod核心对象为SqlCommand,SqlCommand的核心作用就是根据代理的interface和执行的method从mappedStatements当中找到mappedStatement,打通了Dao和xml配置之间的联系。

    • MapperMethod的核心逻辑在于通过SqlSession去执行对应的SQL语句,前提是获取了mappedStatement。

    • SqlSession的执行过程实际是由CachingExecutor/SimpleExecutor等执行器去真正执行,而执行的整个上下文当中都包含mappedStatement,后续和DB交互的本质上都由JDBC的接口实现的。

    欢迎阅读

    相关文章

      网友评论

        本文标题:mybatis 源码总结

        本文链接:https://www.haomeiwen.com/subject/aiocrktx.html