MyBatis面试题

138 阅读1分钟

MyBatis Executor组件的作用?

答:Mapper语句的所有执行都是Executor来执行的。

MyBatis 如何执行的?

答:
    1.加载Mapper配置的SQL映射文件,或者是注解。
    2.通过读取配置文件信息创建会话工厂SqlSessionFactory。
    3.根据会话工厂创建会话SqlSession。
    4.创建执行器Executor。
    5.封装SQL对象(MapperStatement)包含了SQL语句、输入参数映射信息和输出结果映射信息。
    6.操作数据库,最后返回。

MyBatis中一级缓存和二级缓存?

答:
    一级缓存的作用域是在SqlSession中,默认开启,若sqlssesion.commit()或者sqlsession.close操作,缓存也随之清除。
    二级缓存的作用域在Mapper中,开启 <setting name="cacheEnabled" value="true" /> ,
    二级缓存使用场景:主要用在统计报表方面,不需要实时展示的数据。

MyBatis中的延迟加载?

答:Mybatis仅支持association关联对象和collection关联集合对象的延迟加载,延迟加载一般是指使用对象的时候才加载不使用就不加载。