精心挑选要阅读的源码项目;sql
饮水思源——官方文档,先看文档再看源码;数据库
下载源码,安装到本地,保证能编译运行;session
从宏观到微观,从总体到细节;数据结构
找到入口,抓主放次,梳理核心流程;mybatis
源码调试,找到核心数据结构和关键类;架构
勤练习,多折腾;app
总体架构框架
mabatis源码思惟导图 学习
mybatis三大核心流程:3d
mybatis初始化:
进入光标选中的propertiesElement方法内发现,mybatis初始化的时候会把配置文件内的信息放入configuration对象对应的属性内:
至此mybatis初始化工做完成,配置文件的全部信息都被加载到了sqlSessionFactory中的configration对象内。
mybatis代理阶段:
根据sql的类型update,insert,select,delete 缩小查找范围,而后根据sql的返回类型map?list?就可惟一肯定一个sqlsession执行方法
mybatis mapper接口并无实现类,运行中如何判调用的具体方法,执行指定的sql语句???
]SqlSession查询接口嵌套关系
数据库读写阶段:
遵循jdbc的规范,先上一段jdbc代码抛砖引玉:
Executor的三个重要组件
StatementHandler:它的做用是使用数据库的Statement或PrepareStatement执行操做,启承上启下做用;
ParameterHandler:对预编译的SQL语句进行参数设置
ResultSetHandler:对数据库返回的结果集(ResultSet)进行封装,返回用户指定的实体类型;
接着上一段源码,进入selelectList()方法。
ParameterHandler 组件已经饥渴难耐了。
Excutor黑幕以下
最后再看Mybatsi官方文档的介绍,是否有豁然开朗的感受呢?
什么是 MyBatis ?
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎全部的 JDBC 代码和手动设置参数以及获取结果集。
MyBatis 可使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
欢迎你们和我一块儿学习交流构建Java云架构,我这边会将近期研发的Java云架构的搭建过程和精髓记录下来,帮助更多有兴趣研发Java高级架构的朋友,你们来一块儿探讨Java高级架构的搭建过程及如何运用于企业项目。
我本人邀约各大BATJ架构大牛共创Java高级架构交流社区群,(群号:673043639)致力于免费提供Java架构行业交流平台,经过这个平台让你们相互学习成长,提升技术,让本身的水平进阶一个档次,成功通往Java架构技术大牛或架构师发展。
但愿此文能帮到你们的同时,也听听你们的观点。欢迎留言讨论,加关注,分享你的高见!持续更新!
To-陌霖Java架构
分享互联网最新文章 关注互联网最新发展