MyBatis的执行流程:
加载MyBatis的配置文件----创建会话工厂sqlSessioFacyory---创建会话SqlSession----Executor执行器(也负责查询缓存的维护)---MappedStatement对象

延迟加载:
当使用数据时才加载,不需要时不加载,配置文件中开启(LazyLoadingEnabled = true|false)
其底层时CGLIB动态代理,对延迟加载对象创建代理对象,使用数据时判断是否为null,再去查询数据赋值

一级缓存:session级别,默认开启,当执行flush或close清理缓存, HashMap存储
二级缓存:mapper和namespace级别,HashMap存储,当增删改时清理缓存。