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
热门推荐
华东三大名山:黄山、三清山、雁荡山的自然与人文之美
生意兴隆的秘诀:从管理到营销的全方位指南
发财树叶子发蔫咋办
发财树的叶片为何会发黄干枯掉落,主要有以下6个原因
“鸠形鹄面”背后的故事:从历史典故到现代文学
王羲之《心经》:书法艺术与佛教文化的完美融合
济群法师解读:《心经》助你应对职场压力
修炼《心经》,提升你的心理韧性
新罗、高丽、李朝:朝鲜高考的前世今生
瘦西湖设计特色大揭秘:扬州园林的秘密
苏州:这两条老街即将焕新
苏州必去美食街在哪里
怡园、东山雕花楼、葑门横街……这两部热播剧里的苏州元素你发现了吗
春节初一必吃的饺子,你家包了啥馅?
营养大师推荐:初一晚餐完美搭配
大年初一家宴必备:八道特色菜谱
从济宁到黄山:自驾游前必做的车辆检查和路线规划
节后A股能否迎来持续牛市?六大维度全面解析
从80年代美国经验看当前中国股市:转型期的机遇与挑战
春节前后的科技股和消费股投资机会
活性益生菌在肠道健康中的作用
Annu Rev Immunol 最新综述:肠菌代谢物—免疫系统的神秘守护者
揭秘益生菌:从科学定义到选购指南
DeepMind AlphaFold3登顶Nature,揭秘蛋白质结构预测黑科技
艾滋病病人死亡后怎么处理
更年期健康指南:5大关键保养+3大饮食建议
衣冠楚楚:2024-2025明星红毯穿搭大揭秘
杭州最值得一去的20条特色街,总有一款适合你!
从阜阳到厦门沿途经过的主要城市和景点详解
平壤大学:朝鲜高考的高难度挑战