首页 > 其他分享 >mybatis常见面试题

mybatis常见面试题

时间:2024-09-09 18:37:38浏览次数:8  
标签:面试题 缓存 一级 常见 二级缓存 sql mybatis 级别

mybatis常见面试题

#{}和${}的区别是什么?

Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的 set方法来赋值;能够防止sql注入.

Mybatis 在处理\({}时,就是把\){}替换成变量的值。

mybatis的一级缓存和二级缓存

https://www.bilibili.com/video/BV1sM4m1f7L1/?spm_id_from=333.337.search-card.all.click&vd_source=273847a809b909b44923e3af1a7ef0b1

1。缓存的作用

缓存的作用:减低数据源的访问频率。从而提高数据源的处理能力。或者提高服务器的响应速度

2。MyBatis中的缓存设计

  • MyBatis中的缓存的架构设计:装饰器模式

  • MyBatis中的一级缓存和二级缓存

  • 一级缓存:session级别

    一级缓存是SqlSession级别的缓存,它默认是开启的,当同一个sqlsession执行相同的sql语句时,会先从缓存中查找,如果找到了对应的结果。则直接返回缓存中的结果,而不会再次访问数据库。

    在实际项目开发中一级缓存一般没有什么作用。

    要关闭一级缓存:
    //还有一个值是SESSION,也就是默认是开启的。

  • 二级缓存:SqlSessionFactory级别

    二级缓存是Mapper级别的缓存(说白了就是进程级别的缓存),它默认是关闭的。当不同的sqlsession执行相同的sql语句时,如果开启了二级缓存,则会先从缓存中查找,如果找到了对应的结果,则直接返回缓存中的结果,而不会再次访问数据库。

    要开启二级缓存:

    首先是在全局配置文件中设置:

    然后要在具体的映射文件中设置cache标签

    如果映射文件中的某个方法不想开启缓存可以设置useCache = "false"处理。

​ 缺点:二级缓存在单体架构中是不会出现问题的,但是在集群架构中就可能会出现数据不一致的问题。

  • 三级缓存:需要我们自定义实现,需要重写一个Cache接口。

缓存的设计

	通过装饰模式实现缓存功能扩展

缓存的应用

	一级缓存和二级缓存

一级缓存和二级缓存的顺序问题:先二级缓存再一级缓存

为什么会先走二级缓存再走一级缓存?

二级缓存的作用域是SqlSessionFactory级别-90%找到

一级缓存是SqlSession级别的-5%找到

一级缓存和二级缓存底层默认都是基于PerpetualCache来实现的,底层用的是HashMap.

Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么

底层基于CGLIB来实现。

标签:面试题,缓存,一级,常见,二级缓存,sql,mybatis,级别
From: https://www.cnblogs.com/dongyaotou/p/18405070

相关文章

  • “远程IO控制问题全解析:常见报错及一站式解决方案”
    想象一下,在一个遥远的工厂中,机器正在无声地运转,而在世界另一端的办公室里,工程师正通过智能设备监控着这一切。这正是远程IO技术带来的奇迹。然而,当这种技术出现问题时,它可能变成一场远程控制的噩梦。不用担心,本文将带您深入了解远程IO的常见问题,并提供实用的解决方案,让您在远程控制......
  • Mybatis骚操作-通用查询工具类
    老项目大多都有对JDBC进行了封装,可以直接执行SQL的工具类,在做项目升级改造的时候(这里仅指整合mybatis),要么全部调整成dao-xml的形式(会有改动代码多的问题,而且看代码时需要xml和java来回切换),要么维持原逻辑不改动(跟mybatis基本无关,同样难以用到mybatis的配置)这里实现个可以让工具使......
  • 避坑指南:Golang框架自动化测试中的常见问题与解决方案大全
    在使用Golang框架进行自动化测试的过程中,开发者常常会遇到各种各样的问题。为了帮助大家避免一些常见的坑,我整理了一份详细的避坑指南,希望能对大家的开发工作有所帮助。忽视测试用例的独立性在进行自动化测试时,很多人会犯的一个错误是让测试用例之间产生依赖。比如,测试用例A需......
  • 洛谷题单指南-常见优化技巧-P1886 滑动窗口 /【模板】单调队列
    原题链接:https://www.luogu.com.cn/problem/P1886题意解读:单调队列模版题。解题思路:采用双端队列维护单调的序列,单调队列三部曲:1、去头,当窗口内元素个数超过k,队头出队2、去尾,当要加入的元素会破坏单调性,队尾出队3、入队,将元素的下标存入队列每一次入队后,队头元素即为窗口最......
  • mybatis plus 常用知识汇总(保姆级教程!~)
    介绍:MyBatis-Plus是基于MyBatis框架的一个增强工具,主要目的是简化MyBatis的开发过程,提供更加简洁、方便的CRUD操作。它是在保留MyBatis强大功能的基础上,通过封装和优化一些常见操作来提高开发效率。MyBatis-Plus提供了许多开箱即用的功能,包括自动CRUD代码生成、分页......
  • LLM面试题汇总
    LLM相关LLM基础zeroshot、oneshot、threeshot是什么zeroshot:零样本学习。对于模型没有见过的图像,通过已有的图像和特征相关联,从而判别新的图片fewshot:少样本学习。通过判断测试样本与训练样本的相似性,来推测测试样本属于什么类bf16和fp16有什么区别LLM微......
  • 2024护网行动:HW常见红队使用工具_红队工具
    目录什么是HW?什么是网络安全红蓝对抗?红队常见工具信息收集工具Nmap简介漏洞扫描工具Nessus简介AWVS简介抓包工具Wireshark简介TangGo简介web应用安全工具Burpsuite简介SQLMapwebshell管理工具蚁剑冰蝎后渗透工具CobaltStrikeMeterpreter密码破......
  • mybatis plus 常用知识汇总(保姆级教程!~)
    介绍:MyBatis-Plus是基于MyBatis框架的一个增强工具,主要目的是简化MyBatis的开发过程,提供更加简洁、方便的CRUD操作。它是在保留MyBatis强大功能的基础上,通过封装和优化一些常见操作来提高开发效率。MyBatis-Plus提供了许多开箱即用的功能,包括自动CRUD代码生成......
  • 电脑文件如何加密?分享十个常见的文件加密软件神器!
    在这个数字化飞速发展的时代,保护个人和商业数据的安全变得尤为重要。电脑文件加密是确保信息安全的关键步骤之一,它能够防止未经授权的访问和数据泄露。今天,我将为大家介绍十款常见的文件加密软件神器,它们各具特色,能够满足不同用户的需求。1.安秉加密软件安秉加密软件提供用......
  • 2025秋招NLP算法面试真题(十八)-大模型训练数据格式常见问题
    1.SFT(有监督微调)的数据集格式?对于大语言模型的训练中,SFT(SupervisedFine-Tuning)的数据集格式可以采用以下方式:输入数据:输入数据是一个文本序列,通常是一个句子或者一个段落。每个样本可以是一个字符串或者是一个tokenized的文本序列。标签数据:标签数据是与输入数据对应的......