0
点赞
收藏
分享

微信扫一扫

【Mybatis源码解析第三章】Mybatis的“逻辑”


缘起

想必经过前面两章的回忆,你已经很清楚了Mybatis和jdbc的用法,下面我们正式进入到Mybatis的源码解析中。

在阅读源码之前,有必要说一下Mybatis的整体运行逻辑,脑中有了一个大概的流程,才不容易迷失在源码的海洋中。

Mybatis的“步骤”

我们把main入口处的代码分为两个部分

【Mybatis源码解析第三章】Mybatis的“逻辑”_sql


  1. 解析xml的配置文件构建SqlSession对象,
  2. 执行SQL

从代码上看似乎就这么简单,但其实内部会比这个要复杂一点,完整的步骤应该是这样的


  1. 加载配置:配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个​​MappedStatement​​​对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),然后把这个对象作为​​value​​​,把​​mapper​​​的​​namespace+对应节点的id​​​作为key保存到​​Configuration​​​的m​​appedStatements​​属性中,这是个map对象。
  2. SQL解析:当API接口层接收到调用请求时,会接收到传入​​SQL​​​的​​ID​​​和传入对象(可以是Map、JavaBean或者基本数据类型),​​Mybatis​​​会根据​​SQL​​​的​​ID​​​找到对应的​​MappedStatement​​​,然后根据传入参数对象对​​MappedStatement​​​进行解析,解析后可以得到最终要执行的​​SQL​​语句和参数。
  3. SQL执行:将最终得到的​​SQ​​​L和参数使用​​JDBC​​的方式执行,得到操作数据库的结果。
  4. 结果映射:将操作数据库的结果按照映射的配置进行转换,可以转换成​​HashMap、JavaBean​​或者基本数据类型,并将最终结果返回。

那么在下一章中,我们来说说,Mybatis是如何解析配置文件的。



举报

相关推荐

0 条评论