zoukankan      html  css  js  c++  java
  • Mybatis的原理

    说明

    1.在第二步的时候用的是建造者模式,其中BaseBuilder抽象类就扮演建造者接口的角色,得到一个XmlConfigBuilder对象。主要用来解析maybatis-config.xml,是主要的人口,先在配置文件中查找configuration节点,然后开始解析各个子节点,这些信息都会保存到Configuration中。

    2.在第五步的时候,要解析mapper.xml,会把每个sql解析成MappedStatement,会封装到Configuration的mappedStatements中,它是一个map,key为MappedStatement的id(全类名加上方法名),value为MappedStatement。

    3.在解析xml完成以后,会把每个配置文件的命名空间可以绑定一个Mapper接口,并注册到MapperRegistry中,会调用它的addMapper方法填充MapperRegistry.knowMappers集合,集合放的key为Class对象,value为MapperProxyFactory对象。可以为Mapper接口创建代理对象。执行sql的时候,会调用getMapper()方法,获取Mapper的代理对象。
    注:其中MapperRegistry的addMapper方法,是在XMLmapperBuilder.bingMapperForNamespace()中调用的,最终都会出现在Configuration中。

    电脑拿去修了,这里就贴出雷神课件中的图。





    参数的封装:

    缓存的key

    二级缓存查询,走的是tcm:

    一级缓存查询,用的是perpetualCache:

  • 相关阅读:
    redis 基本指令
    php 魔术变量
    php 常用函数总结
    linux 命令——3 pwd (转)
    linux 命令——2 cd (转)
    linux 命令——ls
    ffmeg过滤器介绍[转]
    最简单的基于FFMPEG的转码程序 —— 分析
    ffmpga结构体和常用函数(总结)
    leetcode--3
  • 原文地址:https://www.cnblogs.com/dalianpai/p/14154993.html
Copyright © 2011-2022 走看看