Java 杂谈Java学习笔记程序员专栏

手工打造MyBatis 解密底层源码——怎样学习才能进入阿里?

2018-12-31  本文已影响5人  享学课堂

MyBatis是一个开源的数据持久层框架。它内部封装了JDBC访问数据的操作,支持普通的SQL查询,储存过程和高级映射,几乎消除的JDBC代码和参数的手工设置以及结果集的搜索

Mybatis的特点

简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。

灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。

解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。

提供映射标签,支持对象与数据库的orm字段关系映射

提供对象关系映射标签,支持对象关系组建维护

提供xml标签,支持编写动态sql。

1.划重点,三分钟了解MyBatis的要素;

1、MyBatis的核心接口和类

(1)SqlSessionFactoryBuilder

(2)SqlSessionFactory

(3)SQLSession

2、mybatis-config.xml 系统核心配置文件

3、mapper.xml SQL映射文件

2.MyBatis核心流程三大步骤解密;

(1)加载配置并初始化

触发条件:加载配置文件

处理过程:将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。

(2)接收调用请求

触发条件:调用Mybatis提供的API

传入参数:为SQL的ID和传入参数对象

处理过程:将请求传递给下层的请求处理层进行处理。

(3)处理操作请求

触发条件:API接口层传递请求过来

传入参数:为SQL的ID和传入参数对象

处理过程:

(A)根据SQL的ID查找对应的MappedStatement对象。

(B)根据传入参数对象解析MappedStatement对象,得到最终要执行的SQL和执行传入参数。

(C)获取数据库连接,根据得到的最终SQL语句和执行传入参数到数据库执行,并得到执行结果。

(D)根据MappedStatement对象中的结果映射配置对得到的执行结果进行转换处理,并得到最终的处理结果。

(E)释放连接资源。

(4)返回处理结果将最终的处理结果返回。

3.1、2、3,纯手工版MyBatis出炉!

4.骚年,是时候修炼内功了!


设计模式

Mybatis源码分析

详情源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术资料【关注+私信】

谢谢支持!

上一篇下一篇

猜你喜欢

热点阅读