“Java岗八股文”2025版史上最新最全超详细易理解,面试必备(三)MyBatis篇

文章目录

  • MyBatis篇
    • 1、MyBatis执行流程
    • 2、Mybatis是否支持延迟加载?
    • 3、什么叫做延迟加载?
    • 4、延迟加载的原理
    • 5、Mybatis的一级、二级缓存用过吗?

MyBatis篇

1、MyBatis执行流程

“Java岗八股文”2025版史上最新最全超详细易理解,面试必备(三)MyBatis篇_第1张图片

  1. 读取MyBatis配置文件:mybatis-config.xml加载运行环境和映射文件
  2. 构造会话工厂SqlSessionFactory
  3. 会话工厂创建SqlSession对象(包含了执行SQL语句的所有方法)
  4. 操作数据库的接口,Executor执行器,同时负责查询缓存的维护
  5. Executor接口的执行方法中有一个MappedStatement类型的参数,封装了映射信息 输入参数映射 输出结果映射

2、Mybatis是否支持延迟加载?

Mybatis支持延迟记载,但默认没有开启。

3、什么叫做延迟加载?

延迟加载的意思是:就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。
Mybatis支持一对一关联对象和一对多关联集合对象的延迟加载
在Mybatis配置文件中,可以配置是否启用延迟加载lazyLoadingEnabled=true|false,默认是关闭的。

查询用户的时候,把用户所属的订单数据也查询出来,这个是立即加载
查询用户的时候,暂时不查询订单数据,当需要订单的时候,再查询订单,这个就是延迟加载
“Java岗八股文”2025版史上最新最全超详细易理解,面试必备(三)MyBatis篇_第2张图片

4、延迟加载的原理

  • 使用CGLIB创建目标对象的代

你可能感兴趣的:(Java岗八股文速通,java,面试,mybatis,后端)