mybatis中使用dao实现类的执行过程分析

断点调试和跟踪源码技能

1.在实现类和测试类中打断点
Mybatis中使用dao实现类的执行过程分析——断点调试和跟踪源码技能

Mybatis中使用dao实现类的执行过程分析——断点调试和跟踪源码技能

2.启用debug调试,下一步得到实现类

Mybatis中使用dao实现类的执行过程分析——断点调试和跟踪源码技能

3.选中SqlSession,右键单击

Mybatis中使用dao实现类的执行过程分析——断点调试和跟踪源码技能

4.选中SqlSession,右键单击,选择Show Implementations显示它的所有实现,通过断点调试,我们知道选择DefaultSqlSession

Mybatis中使用dao实现类的执行过程分析——断点调试和跟踪源码技能

5.当我们选中DefaultSqlSession,上方会有显示,然后双击

Mybatis中使用dao实现类的执行过程分析——断点调试和跟踪源码技能

6.进到DefaultSqlSession中,找到我们在findAll()中调用的selectList,发现最终执行的是SqlSession的selectList方法,在这个方法中找到executor的query方法

Mybatis中使用dao实现类的执行过程分析——断点调试和跟踪源码技能

7.发现Executor又是一个接口,继续打断点,找实现类到底是哪一个

Mybatis中使用dao实现类的执行过程分析——断点调试和跟踪源码技能

8.断点调试,得知Executor的实现类是CachingExecutor
Mybatis中使用dao实现类的执行过程分析——断点调试和跟踪源码技能

9.由此通过diagram找到CachingExecutor

Mybatis中使用dao实现类的执行过程分析——断点调试和跟踪源码技能

10.打开CachingExecutor,在query中打断点,调试下一步,可以进到此处。又发现一个query方法

Mybatis中使用dao实现类的执行过程分析——断点调试和跟踪源码技能

11.继续打断点,debug下一步进到此处

Mybatis中使用dao实现类的执行过程分析——断点调试和跟踪源码技能

12.接下来在这两处打断点,继续下一步调试,发现走的第二行。

Mybatis中使用dao实现类的执行过程分析——断点调试和跟踪源码技能

13.由delegate找到SimpleExecutor,所以在Executor类图中选择SimpleExecutor

Mybatis中使用dao实现类的执行过程分析——断点调试和跟踪源码技能

14.打开SimpleExecutor,找到queryFromDatabase方法

Mybatis中使用dao实现类的执行过程分析——断点调试和跟踪源码技能

15.queryFromDatabase方法中有doQuery方法,跟进,发现这是一个抽象方法

Mybatis中使用dao实现类的执行过程分析——断点调试和跟踪源码技能

所以最终执行的是SimpleExecutor的doQuery方法

❤️非常重要的一张图-分析编写dao实现类Mybatis的执行过程(在新标签中打开图片查看)

Mybatis中使用dao实现类的执行过程分析——断点调试和跟踪源码技能

❤️非常重要的一张图-分析代理dao的执行过程

Mybatis中使用dao实现类的执行过程分析——断点调试和跟踪源码技能

相关文章:

  • 2021-09-12
  • 2021-08-02
  • 2021-09-23
  • 2022-12-23
  • 2021-04-17
  • 2021-06-23
  • 2021-08-28
  • 2022-12-23
猜你喜欢
  • 2021-05-04
  • 2021-10-11
  • 2021-09-21
  • 2021-12-27
  • 2022-12-23
  • 2021-10-16
  • 2022-12-23
相关资源
相似解决方案