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

#{}是预编译处理,${}是字符串替换。
Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的 set 方法来赋值;
Mybatis 在处理时,就是把{}替换成变量的值。
使用#{}可以有效的防止 SQL 注入,提高系统安全性。

2. Mybatis 是如何进行分页的?分页插件的原理是什么?

Mybatis 使用 RowBounds 对象进行分页,它是针对 ResultSet 结果集执行的内 存分页,而非物理分页,可以在 sql 内直接书写带有物理分页的参数来完成物 理分页功能,也可以使用分页插件来完成物理分页。
分页插件的基本原理是使用 Mybatis 提供的插件接口,实现自定义插件,在插 件的拦截方法内拦截待执行的 sql,然后重写 sql,根据 dialect 方言,添加对 应的物理分页语句和物理分页参数。

3. 当实体类中的属性名和表中的字段名不一样 ,怎么办 ?

第 1 种: 通过在查询的 sql 语句中定义字段名的别名,让字段名的别名和实体 类的属性名一致
第 2 种: 通过来映射字段名和实体类属性名的一一对应的关系

4.为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?

 Hibernate 属于全自动 ORM 映射工具,使用 Hibernate 查询关联对象或者关 联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。
 而 Mybatis 在查询关联对象或关联集合对象时,需要手动编写 sql 来完成,所 以,称之为半自动 ORM 映射工具。

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

Mybatis 仅支持 association 关联对象和 collection 关联集合对象的延迟加载, association 指的就是一对一,collection 指的就是一对多查询。在 Mybatis 配置 文件中,可以配置是否启用延迟加载 lazyLoadingEnabled=true|false。
它的原理是,使用 CGLIB 创建目标对象的代理对象,当调用目标方法时,进入拦 截器方法,比如调用 a.getB().getName(),拦截器 invoke()方法发现 a.getB() 是 null 值,那么就会单独发送事先保存好的查询关联 B 对象的 sql,把 B 查询上来, 然后调用 a.setB(b),于是 a 的对象 b 属性就有值了,接着完成 a.getB().getName()方法的调用。这就是延迟加载的基本原理。
当然了,不光是 Mybatis,几乎所有的包括 Hibernate,支持延迟加载的原理 都是一样的。

6.简述 Mybatis 的插件运行原理,以及如何编写一个插件

7.如何获取自动生成的(主)键值?

8.MyBatis 与 Hibernate 有哪些不同?

9.Mybatis 都有哪些 Executor 执行器?它们之间的区别是什么?

10.Mybatis 的 Xml 映射文件中,不同的 Xml 映射文件,id 是否可以重复?

11.在 mapper 中如何传递多个参数

12.Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述一下动态 sql 的执 行原理不?

13.通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,请问,这个 Dao 接 口的工作原理是什么?Dao 接口里的方法,参数不同时,方法能重载吗?

14.接口绑定有几种实现方式,分别是怎么实现的?

15…Mybatis 都有哪些 Executor 执行器?它们之间的区别是什么?

16.Mybatis 是如何将 sql 执行结果封装为目标对象并返回的?都有哪些映射形 式?

17.Xml 映射文件中,除了常见的 select|insert|update|delete 标签之外,还 有哪些标签?

18. 一级、二级缓存

19. Mybatis 映射文件中,如果 A 标签通过 include 引用了 B 标签的内容,请问, B 标签能否定义在 A 标签的后面,还是说必须定义在 A 标签的前面?

20.简述 Mybatis 的 Xml 映射文件和 Mybatis 内部数据结构之间的映射关系?

这些都是我曾经刷过的和最近一个多月整理出来的一些面试题及答案,在这里给大家分享出来,有兴趣的小伙伴可以关注公众号 l谈java 以上问题pdf的获取在里面。

备战金九银十 你必须知道的Mybatis面试题相关推荐

  1. 闭关28天,奉上[Java一线大厂高岗面试题解析合集],备战金九银十

    前言 时间不等人,2022年转眼就要过去大半了,春招在疫情中度过,不知有多少人还在惋惜... 马上又是秋招的高峰"金九银十",估计现在就已经有不少的程序猿(媛)朋友早就踏上提前批之 ...

  2. 万字长文,冲刺备战金九银十,奉上[Java一线大厂高岗面试题解析合集]

    时间不等人,2022年转眼就要过去大半了,春招在疫情中度过,不知有多少人还在惋惜... 马上又是秋招的高峰"金九银十",估计现在就已经有不少的程序猿(媛)朋友早就踏上提前批之路了吧 ...

  3. 备战金九银十,腾讯T4梳理2022年最全999道Java岗必备面试题答案

    Java集合/泛型面试题 1.ArrayLi st和1inkedList的区别 2.HashMap和HashT abl e的区别 3.Collecti on包结构,与Collections的区别 4. ...

  4. 备战金九银十,阿里P8师兄指导完整攻略(附:学习资料+面试宝典+项目实战笔记)

    前言 还剩下两个月就到了金九银十,一般来说,秋招的含金量明显是高于春招的. 那么如何准备即将到来的面试热潮呢?运筹帷幄之后,决胜千里之外! 坚决不打毫无准备的仗是小编的原则:不论是笔试还是面试都是有章 ...

  5. 备战金九银十,腾讯 T4 梳理 2022 年最全 999 道 Java 岗必备面试题答案

    前言 今年马上又准备迎接金九银十了,你是否还在寻找没有"996"的公司,或者你在面试上面摘了跟头?准备了体体面面的自我介绍,败在了技术深度上:又或者技术知识背得完完全全,却输在了面 ...

  6. 备战金九银十,Java研发面试题+答案整合PDF,走到哪刷到哪

    八月在即,马上就是"金九银十",又是跳槽招聘季.咱们这行公认涨薪不如跳槽加的快.但不建议频繁跳槽,还是要学会融合团队,抓住每个机会提升技能. 在这里给大家整理了一套各大互联网公司面 ...

  7. 备战金九银十涨薪季,1000道软件测试面试题和面试经验分享

    小编热衷于收集整理资源,记录踩坑到爬坑的过程.希望能把自己所学,实际工作中使用的技术.学习方法.心得及踩过的一些坑,记录下来.也希望想做软件测试的你一样,通过我的分享可以少走一些弯路,可以形成一套自己 ...

  8. 备战金九银十!【Java 面试小抄】涵盖当下最时新热门技术点,学完 offer 得拿到手软~

    面试的重要性: 最近替公司面了几个应聘者,结果给我整抑郁了,9 点的面试 9 点 10 分才到!!!这还不是最重要的,重要的是穿着一眼就让人看出来没有对这场面试很重视的感觉!!但是小编还是面完了,很多 ...

  9. 备战金九银十,全网最权威最全面的800+面试题,你值得拥有

    又到了每年的金九银十,一年一度的招聘盛会开始了. 想转行的,想跳槽涨薪的,想换一份更舒服更美好的工作的现在可以准备起来了. 软件测试作为IT届最亲民的门槛最低的准入行业,每年在这个时候会迎来很多的小白 ...

  10. 金三银四、金九银十 面试宝典 Spring、MyBatis、SpringMVC面试题 超级无敌全的面试题汇总(超万字的面试题,让你的SSM框架无可挑剔)

    Spring.MyBatis.SpringMVC 框架 - 面试宝典 又到了 金三银四.金九银十 的时候了,是时候收藏一波面试题了,面试题可以不学,但不能没有!

最新文章

  1. chrome浏览器无法上网_低调使用,内置特殊功能的浏览器。。
  2. 使用Git后10件你可能需要“反悔”的事
  3. LeetCode 137. 只出现一次的数字 II
  4. codeforces round #257 div2 C、D
  5. 如何记录流水账,打开图表查看账目
  6. 计算机等级考试四级网络工程师真题,计算机四级网络工程师试题及答案
  7. wps两个段落之间间隔太大,将段落中的行距设为0也没用
  8. 对帧率、I/P率、I帧间隔的理解2021-11-16
  9. 【分享】常用JS(2)
  10. React报错:Error: Too many re-renders. React limits the number of renders to prevent an infinite loop.
  11. 腾讯云服务器评测:配置 8核 16G 18M 带宽
  12. kdb+q一个入库和删除的小demo
  13. 小程序引导用户下载APP
  14. 计算机微机维修工四级理论知识试卷,计算机维修工中级理论知识试卷1.doc
  15. JAVA核心:I/O(输入/输出)
  16. 有效学习python
  17. trs java_trs常见问题 - This Is A FineDay - BlogJava
  18. iphone时间同步问题
  19. 软件架构设计系列总结
  20. HBuilderX的下载和安装和使用

热门文章

  1. 安科瑞ACTB-6互感器二次侧开路保护装置
  2. 计算机网络学习笔记11(P2P)
  3. 童年经典,任天堂switch红白机游戏
  4. PageOffice 在线打开 word 文件实现痕迹保留、键盘批注、手写批注
  5. 阿里总结的《Java成神之路》 PDF 火了,完整版开放下载!
  6. 计算机cpu intel,intel CPU后面带F是什么意思?Intel处理器后面带“F”含义详解
  7. 帮助文档.chm能打开但是显示不出来详细内容
  8. Unity-协成-开启关闭
  9. css属性百分比参照物
  10. 李开复:移动互联网创业看趋势 看好Android