Mybatis SQL运行流程源码详解
概述

源码就是能够被用来执行,生成机器能够识别的代码,通过开源源码,可以引用其功能。
重要性
1、mybatis中的sql执行,不仅要知道返回的结果是什么,还需要知道这结果是怎么来的,经过了怎样的处理,只有知道了这样的原理,碰到问题才能更好的知道问题出在那个环节。
2、能更好的扩展应用程序,可以做到代码的复用,减少开发成本和时间。
3、学习其中的设计思想能够在其他应用得已应用。
步骤
源码阅读,可以从测试用例着手,每个源码,多有大师们写的测试用例,咱们可以用大师们写的测试用例进行相关功能的测试,这样就可以知道其中的运行原理及一些设计思想。
步骤1 测试用例请求
步骤2 进行MapperProxy对象,MapperProxy代理是jdk动态代理,根据传入的mapper接口,动态生成代理对象,代理对象同时实现了InvocationHandler接口。
步骤3:进行到MapperMethod类,通过构造器初始化SqlCommand静态内部类,跟配置文件的方法签名对比,是不是有对应的方法。
步骤4 进行execute选择执行的Sqlsession
步骤5 进入DefaultSqlsession,选择执行的执行器,先选择缓存执行器,缓存没有选择默认的简单执行器,如果mybatis有配置,就选择配置的执行器,并设置预处理参数。
步骤6 进入申明处理对象进行查询,返回结果集
流程的请求总结
总结
1、mybatis使用了jdk的动态代理,在程序执行的时候生成一个具体的代理对象,执行相关的逻辑,可以在代理的方法前后执行一些逻辑,不用改变原来类的逻辑,就能增强类方法的功能,在编写底层代码的时候动态代理尤其重要;
2、应用广泛比如事物的管理、spring aop的原理实现,登录权限拦截、日志的统一输出、统计每个 api 的请求耗时等等。
3、研究源码并不是为了研究而研究,要学习其中的思想,比如动态代理、工厂模式、建造者模式,要利用这些原则来增加程序的可维护性、复用性、灵活性、可靠性。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
代码知识SEO上一篇 : Vue表单提交点击事件只允许点击一次的实例
下一篇 : IDEA热部署配置详细教程
-
SEO外包最佳选择国内专业的白帽SEO机构,熟知搜索算法,各行业企业站优化策略!
SEO公司
-
可定制SEO优化套餐基于整站优化与品牌搜索展现,定制个性化营销推广方案!
SEO套餐
-
SEO入门教程多年积累SEO实战案例,从新手到专家,从入门到精通,海量的SEO学习资料!
SEO教程
-
SEO项目资源高质量SEO项目资源,稀缺性外链,优质文案代写,老域名提权,云主机相关配置折扣!
SEO资源
-
SEO快速建站快速搭建符合搜索引擎友好的企业网站,协助备案,域名选择,服务器配置等相关服务!
SEO建站
-
快速搜索引擎优化建议没有任何SEO机构,可以承诺搜索引擎排名的具体位置,如果有,那么请您多注意!专业的SEO机构,一般情况下只能确保目标关键词进入到首页或者前几页,如果您有相关问题,欢迎咨询!