delete方法没有并SqlSession的delete方法,而是调用的Upadte方法。

在测试类这里加断点。

实际的方法体内也加断点

运行测试方法,选择debug的方式

走到断点这里。会看到factory是DefaultSqlSessionFactory


session是DefaultSqlSession

找借口的实现类

选中SqlSession


选中SqlSession并鼠标右键---show Implementations 显示它的所有实现

然后就显示了两个。通过刚才的断点调试我们知道是是DefaultSqlSession

选中下面的DefaultSqlSession后上面就出现了路径。然后双击上面的DefaultSqlSession

然后就进入了DefaultSqlSession这个类里

尅看到selectList的方法。最终执行的是最下面的seletList方法。
第一个selectList里面调用了两个参数的。连个参数的selectList里面有调用的是三个参数的selectList


继续找到query方法里面

Executor方法又是一个接口

我们在这里加断点看一下。Executor的的实现类是谁。

继续调用testFindAll方法 debug测试

断点到代码这里。

右键找到 CachingExecutor


里面有个query的方法

断点再走一步。进入到了这里。


query方法的代码

继续走就又到了这个断点这里



看到delegate是一个SimpleExecutor


这里只有一个doQuery方法

那么在这个过程中肯定进行了转换。我们看到SimpleExecutor继承了BaseExecutor

父类里面有query的方法

doQuery是一个抽象方法。被它的子类也就是SimpleExecutor实现了。

所以最终执行的是SimpleExecutor这个子类的doQuery方法

SimpleExeccutor重写了父类的doQuery方法。并在里面最终调用了Handler的query方法


断点过来。看到handler是RoutingStatementHandler

进去到这个Handler里面。进去到这个StatementHandler

找到Digram关系图。---show Digram显示关系图。


查看实现类

找到RoutingStatementHandler


找到query方法内加断点

最新文章

  1. WinForm轻松实现自定义分页 (转载)
  2. Swift - 语言指南,来自github学习
  3. Evolutionary Computing: 4. Review
  4. 关于如何写UI及屏幕适配的一些技巧
  5. MapGIS6.7安装图文教程(完美破解)
  6. android Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine.
  7. application in 2014
  8. jsp servelet
  9. ETL的经验总结
  10. arguments及arguments.callee
  11. Given two binary string, return their sum (also a binary string)
  12. python摸爬滚打之----tcp协议的三次握手四次挥手
  13. Kubernetes总结
  14. spring aop通过注解实现日志记录
  15. Linux中断 - 综述
  16. VS调试dll
  17. test20181016 B君的第一题
  18. code1002 搭桥
  19. file.wirtelines()方法【python】
  20. python的数据类型的有序无序

热门文章

  1. Redis info笔记
  2. uboot dcc
  3. C# List 过滤,排序,删除
  4. Quartz--Spring 定时任务
  5. redis开发使用规范
  6. SQL复杂筛选
  7. SpringApplication.run 做了哪些事?
  8. PHP入门培训教程 PHP变量及常量
  9. tensorflow版本介绍
  10. Spring Boot教程(六)在springboot中验证表单信息