zoukankan      html  css  js  c++  java
  • Mybatis源码解析

    Mybatis源码解析

    一、mybatis 流程三个阶段

      1、初始化阶段:读取XML 配置文件和注解中的配置信息,创建配置对象,并完成各个模块的初始工作;

      2、代理阶段:封装 IBatis 编程模型,使用 mapper 接口开发的初始化工作;

      3、数据处理阶段:通过 SqlSession 完成SQL解析,参数的映射、SQL的执行、结果的反射解析过程;

    二、简化版 Mybatis 实现思路 

                                  

    1、初始化阶段:读取XML 配置文件和注解中的配置信息,创建配置对象,并完成各个模块的初始工作;

      1、创建 SqlSessionFactory 实例

      2、实例化过程中加载配置文件创建 Configuration 对象

      3、通过 factory 创建 SqlSession 

    2、代理阶段:封装 IBatis 编程模型,使用 mapper 接口开发的初始化工作;

      4、通过 Sql Session 获取 mapper 结果动态代理

      5、动态代理回调 sqlsession 某个具体方法

      6、Sql Session 将执行方法转发给 Executor

    3、数据处理阶段:通过 SqlSession 完成SQL解析,参数的映射、SQL的执行、结果的反射解析过程;

      7、Executor 基于 jdbc 访问数据库获取数据

      8、Executor 通过反射将数据转成 pojo 返回给 Sql Session

      9、将数据返回给调用者;

       

    https://www.cnblogs.com/dongying/p/4142476.html

  • 相关阅读:
    POJ 3635 Full Tank?
    ZOJ 2112 Dynamic Rankings
    POJ 3468 A Simple Problem with Integers (2)
    FJOI2007 轮状病毒
    HDU 3308 LCIS
    POJ 2449 Remmarguts' Date
    Adroid平台图表案例源码
    Android项目——实现时间线程源码
    关于Ubuntu上Eclipse不显示手机设备
    自定义ListView下拉弹起效果
  • 原文地址:https://www.cnblogs.com/Jomini/p/13723828.html
Copyright © 2011-2022 走看看