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
热门推荐
水泵的扬程究竟是什么意思
还用传统方法倒车入库?老司机独家倒库方法,不懂得赶快来学
如何寻找骑行团队
七福饮的功效与作用
失业保险金的停止方法是什么?这种停止方法会产生什么后果?
说说胃肠镜检查那些事儿
欧鲤钓反底钓组(ZIG钓组)详解:原理、应用及游戏实战
费德勒比赛策略深度解析与技术运用的终极探讨
2025年高考形势严峻:复读生激增至520万,本科录取率或创新低
喜看资阳城乡融合发展万千气象
从首次举办科技创新大会,看资阳发展动能
美国独立董事的选聘流程详解:从选择到决策的全程剖析
葡萄酒酒杯搭配指南
法律职业资格证考试和司法考试一样吗
新手购车指南:轻松选到梦寐以求的爱车
电瓶车肇事逃逸罪最新处罚标准
游泳池消毒方案怎么选
车撞人对方不要赔偿走了,事后警方认定我是“肇事逃逸”怎么办?
Excel多条折线图区分方法详解
身体肥胖怎么减肥
NVIDIA控制面板:游戏性能提升的秘密武器
过去将来时结构及标志词
硬笔书法漂亮钢笔字6大秘诀
耳石复位一次多少钱?详解影响价格的三大因素
项目交付管理目标包括哪些内容
日常辐射防护知识
肺炎支原体阳性治疗方法全解析
.22LR长步枪口径弹:小口径、大用途的经典弹药
动态IP与静态IP的概念、区别、应用场景
小猫可以自己在家吗?如何确保安全和健康?