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
热门推荐
雷军周鸿祎,速成网红真相
汽车电瓶充电秘籍:让您的爱车多跑十年
冬游香格里拉,住进最美酒店
2024 汽车保养必知:让你的爱车持久如新
顾苏家族联姻:一场穿越时空的古风婚礼
春节对联热卖,国货创新正当时
2025春节营销新花样:创新与传统并重
春节消费热潮,下沉市场餐饮爆棚
产后恢复黄金期:月子中心如何助力宝妈快速恢复活力
血塞通片成份都有什么
判断巨蟹女是不是想跟你谈恋爱
一脸“福气”的女人,这三个特征很明显
冬季孕妇骑电动车:安全出行指南
刘涛:用实力证明自己,用演技征服观众
从《琅琊榜》到直播带货:刘涛的演艺人生与坚韧精神
刘涛演技大赏:从《琅琊榜》到《欢乐颂》
辽源严查拖拉机超载,筑牢农村交通安全防线
春节前夕,芷江县严查拖拉机超载
贵阳限行新规出炉!非黔A牌照车辆注意,早晚高峰限行有变
三元锂电池与磷酸铁锂电池哪个更安全?
京医科普:你不得不知的输液港居家护理小知识
吃啥对肝囊肿有好处
【宠物生病】宠物常见疾病如何治疗 陪伴爱宠健康成长
甜丝丝和朋友们的爆笑日常
肝囊肿患者的注意事项
高铁“遛娃舱”:让孩子旅途不再烦
春节自驾游,如何让宝贝坐得舒舒服服?
硚口法院举办“法助硚企”知识讲堂:为企业提供商业租赁风险防范指导
越吃眼睛越亮的5种菜,隔天吃一次,养肝护眼润脾胃
慢性结膜炎能治好吗?