MyBatis的执行流程
- 先加载配置文件
- 再通过SqlSessionFactoryBuilder创建SqlSessionFactory对象
- 获取SqlSession
- 生成代理对象
- 执行Excutor
- 匹配执行SQL语句
MyBatis的一级缓存和二级缓存
- 一级缓存:也叫SqlSession级缓存,无需手动开启,可直接使用,为每个SqlSession单独分配的缓存空间,多个SqlSession之间的缓存不共享。
- 二级缓存:namespace级别缓存,即一个mapper一个缓存,相互独立互不影响,同一个namespace下的多个SqlSession可以共享缓存,默认不开启,需要配置开启。
MyBatis的懒加载机制
- 按需加载,当调用到关联的数据时,才与数据库交互。
- 针对级联使用。
- 懒加载的目的是减少内存的浪费和减轻系统负担。