美文网首页Java 杂谈Java学习笔记程序员专栏
手工打造MyBatis 解密底层源码——怎样学习才能进入阿里?

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

作者: 享学课堂 | 来源:发表于2018-12-31 17:36 被阅读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、分布式、高并发等架构技术资料【关注+私信】

    谢谢支持!

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/ehoelqtx.html