MyBatis面试考点
创作时间:
作者:
@小白创作中心
MyBatis面试考点
引用
CSDN
1.
https://blog.csdn.net/weixin_43785387/article/details/139578856
MyBatis面试考点
MyBatis执行流程
- 加载MyBatis配置文件,mybatis-config.xml加载运行环境和映射文件
- 构建会话工厂SqlSessionFactory
- 会话工厂创建SqlSession对象(包含了执行SQL语句的所有方法)
- 操作数据库的接口,Executor执行器,同时负责查询缓存的维护
- Executor接口的执行方法中有一个MappedStatement类型的参数,封装了映射信息
- 输入参数映射
- 输出结果映射
MyBatis是否支持延迟加载?
Mybatis支持延迟加载,但是默认没有开启。延迟加载是指需要用到数据时才进行加载,不需要用到数据时就不加载数据。可以在MyBatis配置文件中启用加载lazyLodingEnable=true,默认是关闭的
延迟加载的原理?
- 使用CGLIB创建目标对象的代理对象
- 当调用目标方法user.getOrderList()时,进入拦截器invoke方法,发现user.getOrderList()时null值,执行sql查询order列表
- 把order查询上来,然后调用user.setOrderList(List
orderList),接着完成user.getOrderList()方法的调用
MyBatis的一级、二级缓存用过吗?
- 本地缓存:基于PerpetualCache,本质是一个HashMap
- 一级缓存:作用域时session级别,默认是开启的
- 二级缓存:作用域时namespace和mapper的作用域,不依赖于session。默认是关闭的,需要在全局配置文件开启cacheEnable=true,然后再mapper文件加上<cache/>。只有会话提交或者关闭以后,一级缓存中的数据才会转移到二级缓存中。
MyBatis二级缓存什么时候会清理缓存中的数据
当某一个作用域(一级缓存Session/二级缓存Namespace)进行了新增、修改、删除操作以后,默认该作用域下所有select中的缓存将被clear
热门推荐
喝完中药头晕恶心乏力是怎么回事
如何评价车型的实用性?这些评价指标有哪些参考价值?
机电一体化技术在现代工业中的应用与发展探讨
二手房商业贷款放款周期的法律解析与实务操作指南
走进画学:揭秘人物构图的奥秘,提升绘画技能
《第七天》:比《活着》更艰难 作品赏析
5W1H方法:解密项目管理的关键问题
唐诗三百首李白
公务员考试申论答题纸格子大小及考试要求详解
关于佐匹克隆,至少要知道这几点!
美国最新研究:联合免疫疗法为甲状腺癌治疗带来新希望
“领梦者”青春三下乡:青春心向党,智能评测系统助力体育梦
穿越审判者快速踢腿:重构司法程序与效率的法律思考
湖南常德的八道美食,吃过才算真正来过!
在富士山露营!介绍尽情享受日本文化与自然的典范路线
低碳饮食会头晕吗?医生的专业解答来了
数罪并罚时有期徒刑的判决规则详解
家暴提供什么证据?故意伤害毁容怎么判?
低血压突发,怎么办?
肉丸加工工艺详解:从原料到成品的完整生产流程
银行无息贷款是怎么还的呢?
周末消息对股市的影响机制全解析
非全日制研究生如何拓展人脉?五个有效的方法让你受益匪浅!
揭秘牛胃的奇妙世界:四室分工,共筑消化奇迹!
尿酸高中医认为是什么原因
铣床装夹工具V形块的使用方法和装夹轴类工件时注意事项
电动智能与新消费“双向奔赴” 汽车自主品牌向上“突围”
美国留学女生开放程度如何影响生活与学习
四川省内落户成都流程 四川人怎么落户成都?
铁树的家门口种植与养护(打造美丽家园,从铁树开始)