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方法内加断点

转载于:https://www.cnblogs.com/wangjunwei/p/11311942.html

阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_4 Mybatis中使用Dao实现类的执行过程分析-查询方法...相关推荐

  1. MyBatis-学习笔记06【06.使用Mybatis完成DAO层的开发】

    Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...

  2. SpringBoot如何自动生成实体类和Dao层以及映射文件(mybatis generator 自动生成代码)

    一.首先添加自动生成代码插件 <!-- mybatis generator 自动生成代码插件 生成时解除注释 --><plugin><groupId>org.myb ...

  3. 实战SSM_O2O商铺_32【商品】商品编辑之Dao层的实现

    文章目录 概述 Dao层接口 ProductDao#selectProductById ProductDao#updateProduct ProductImgDao#deleteProductImgB ...

  4. MyBatis的Dao层实现方式

    MyBatis的Dao层实现方式 MyBatis的Dao层实现 1.1 传统开发方式 1. 编写UserDao接口 public interface UserDao { List<User> ...

  5. 详解MyBatis的Dao层实现和配置文件深入

    这篇文章主要为大家详细介绍了MyBatis的Dao层实现和配置文件深入,文中的示例代码讲解详细,感兴趣的小伙伴快来跟随小编一起学习一下 目录 [Mybatis的Dao层实现] [传统开发方式] [代理 ...

  6. mybatis Dao层 Mapper层 controller层 service层 model层 entity层 简介

    简介 SSM是sping+springMVC+mybatis集成的框架. MVC即model view controller. model层=entity层.存放我们的实体类,与数据库中的属性值基本保 ...

  7. SpringBoot实现Java高并发秒杀系统之DAO层开发(一)

    SpringBoot实现Java高并发秒杀系统之DAO层开发(一) 秒杀系统在如今电商项目中是很常见的,最近在学习电商项目时讲到了秒杀系统的实现,于是打算使用SpringBoot框架学习一下秒杀系统( ...

  8. java 框架 Dao层 Mapper层 controller层 service层 model层 entity层 简介

    目录 简介 entity层 mapper层 service层 controller层 简介 SSM是sping+springMVC+mybatis集成的框架. MVC即model view contr ...

  9. 实战SSM_O2O商铺_25【商品类别】商品类别列表展示从Dao到View层的开发

    文章目录 概述 Dao层 ProductCategoryDao接口 ProductCategoryDao Mapper配置文件 单元测试 Service层 ProductCategoryService ...

  10. Mybatis——注入执行sql查询、更新、新增以及建表语句

    文章目录 前言 案例 dao和mapper编写 XXXmapper.xml编写 编写业务层代码,进行注入调用 额外扩展--创建表语句 前言 在平时的项目开发中,mybatis应用非常广泛,但一般都是直 ...

最新文章

  1. (考勤记录导出教程)指纹考勤机科密C21
  2. html5网上购物平台论文,网上购物系统毕业论文
  3. 空降的主管要如何生存?
  4. npm run dev报错 Class constructor ServeCommand cannot be invoked without new
  5. contiki之list(1)
  6. Android Studio飘红错误
  7. 批量部署服务器系统,自动化运维之cobbler批量部署服务器系统 | opengers
  8. 取小数点前两位,并四舍五入
  9. ZUCC_Object Oriented Programming_Lab01 Introduction to Java
  10. linux TC命令使用总结
  11. 颜值爆表!Redis 官方客户端工具,功能强大,且支持可视化监控!
  12. c语言调用鼠标驱动函数,鼠标驱动程序
  13. Dell Fn键 F1-F12特殊功能键
  14. 淘宝网前端开发面试题
  15. JMeter性能测试工具详解
  16. Python tkinter 布局
  17. java随机出题_如何用Java实现随机出题?
  18. 程序员去哪里找国外朋友来进行学习英语?
  19. CVPR 2020代码开源的论文最全合集
  20. 甲类功率放大器的简介

热门文章

  1. 平分物品价值java_网易互联网8.8笔试_第2题平分物品_自己的题解记录
  2. 拓端tecdat|R语言缺失值的处理:线性回归模型插补
  3. fbeta_socre使用
  4. Java游戏程序设计 第3章 游戏程序的基本框架
  5. TimedRotatingFileHandler函数用法
  6. cvpr常用资源整理
  7. Ubuntu 主题美化
  8. python基于混合多项式模型PCF实现数据曲线拟合
  9. Python使用matplotlib模块绘制多条折线图、散点图
  10. linux docker位置查找,linux – 如何在Docker中获取依赖子图像列表?