zoukankan      html  css  js  c++  java
  • Mybatis源码正确打开方式

    精心挑选要阅读的源码项目;

    饮水思源——官方文档,先看文档再看源码;

    下载源码,安装到本地,保证能编译运行;

    从宏观到微观,从整体到细节;

    找到入口,抓主放次,梳理核心流程;

    源码调试,找到核心数据结构和关键类;

    勤练习,多折腾;

    MyBatis 源码下载地址:https://github.com/mybatis/mybatis-3

    整体架构

    mabatis源码思维导图

                                                                                                                                                                          

      

                                                                                           

    mybatis三大核心流程:

     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对象)映射成数据库中的记录。

  • 相关阅读:
    request-log-analyzer日志分析
    ubuntu下git输出的颜色变化
    vundle安装 给vim插上翅膀
    安装ruby
    【HDU1944】S-Nim-博弈论:SG函数
    【HDU1944】S-Nim-博弈论:SG函数
    我对SG函数的理解
    我对SG函数的理解
    【POJ2154】Color-Polya定理+欧拉函数
    【POJ2154】Color-Polya定理+欧拉函数
  • 原文地址:https://www.cnblogs.com/dw-haung/p/10051250.html
Copyright © 2011-2022 走看看