“金三”已过半,关于MyBatis,你能抵挡住面试官的连环炮轰吗?

“金三”已过半,关于Mybatis,你能抵挡住面试官的连环炮轰吗?可能很多人都还没有准备好,不过没关系,小编这次就来探讨分析一下吧。

关于MyBatis的学习,我有一些建议和笔记想分享出来一起跟大家学习,总共是分四步走:

  • 第一步 清楚什么是MyBatis?
  • 第二步 搞明白MyBatis怎么学?
  • 第三步 分析MyBatis的面试题目(附带解析)
  • 第四步 既然谈到了MyBatis,那没理由不来说说SSM框架里的另外两个咯

注意:不管是前三步说的的MyBatis还是第四步提到的Spring及SpringMVC,其中的一些面试题和解析,以及一些学习的笔记跟书籍资料,有需要即可免费分享,私信我 “复习” 便可!

“金三”已过半,关于MyBatis,你能抵挡住面试官的连环炮轰吗?

第一步 清楚什么是MyBatis?

  • Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。
  • MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
  • 通过xml 文件或注解的方式将要执行的各种 statement 配置起来,并通过java对象和 statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象并返回。(从执行sql到返回result的过程)。

第二步 搞明白MyBatis怎么学?

谈到这个问题,给大家介绍一本447页的《MyBatis技术内幕》(文末有下载方式),总共是4个章节吗,不知道这本书你看过学习没有... ...

  • 第1章 是MyBatis的快速入门,其中介绍了MyBatis出现的背景、与其他JAVA持久化框架的比较以及MyBatis的入门示例。介绍了MyBatis的整体架构,并简述了MyBatis中各个模块的基本功能。
“金三”已过半,关于MyBatis,你能抵挡住面试官的连环炮轰吗?

  • 第2章 介绍MyBatis基础支持层中各个模块的功能,其中包括数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块和解析器模块。这些模块相对独立,读者在实践中如果遇到这类似的需求,可以直接参考MyBatis的实现。
“金三”已过半,关于MyBatis,你能抵挡住面试官的连环炮轰吗?

  • 第3章 介绍MyBatis核心处理层的主要功能,其中包括MyBatis初始化过程、动态SQL的解析过程、结果集的映射原理、SQL语句的参数绑定、KeyGenerator、StatementHandler以及Executor等组件的实现原理。同时,还介绍了MyBatis接口层的设计原理。
“金三”已过半,关于MyBatis,你能抵挡住面试官的连环炮轰吗?

  • 第4章 介绍MyBatis插件的编写和配置方式、运行原理以及常见的应用场景,并分析了在实践中使用的分页插件和分表插件的具体实现。
    之后,介绍了MyBatis和Spring集成开发的相关内容,搭建了Spring4.3、MyBatis3.4、SpringMVC的集成开发环境,剖析了MyBatis-Spring中核心组件的实现原理。最后介绍了一些在使用MyBatis时用到的一些小技巧和一些小工具的使用方案。
“金三”已过半,关于MyBatis,你能抵挡住面试官的连环炮轰吗?

第三步 分析MyBatis的面试题目(附带解析)

“金三”已过半,关于MyBatis,你能抵挡住面试官的连环炮轰吗?

(1)先来看题目(答案先拦下,试试自己知道不,这边只列举了32道,只是一些)

  • 什么是 MyBatis?讲下 MyBatis 的缓存
  • Mybatis 是如何进行分页的?分页插件的原理是什么?
  • 简述 Mybatis 的插件运行原理,以及如何编写一个插件?
  • Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述一下动态 sql 的执行原理不?
  • #{}和${}的区别是什么?
  • 为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?
  • Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?
  • MyBatis 与 Hibernate 有哪些不同?
  • MyBatis 的好处是什么?
  • 简述 Mybatis 的 Xml 映射文件和 Mybatis 内部数据结构之间的映射关系?
  • 什么是 MyBatis 的接口绑定,有什么好处?
  • 接口绑定有几种实现方式,分别是怎么实现的?
  • 什么情况下用注解绑定,什么情况下用 xml 绑定?
  • MyBatis 实现一对一有几种方式?具体怎么操作的?
  • Mybatis 能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别?
  • MyBatis 里面的动态 Sql 是怎么设定的?用什么语法?
  • Mybatis 是如何将 sql 执行结果封装为目标对象并返回的?都有哪些映射形式?
  • Xml 映射文件中,除了常见的 select|insert|updae|delete 标签之外,还有哪些标签?
  • 当实体类中的属性名和表中的字段名不一样,如果将查询的结果封装到指定 pojo?
  • 通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应, Dao 的工作原理,是否可以重载?
  • Mybatis 映射文件中,如果 A 标签通过 include 引用了 B 标签的内容,请问,B 标签能否定义在 A 标签的后面,还是说必须定义在 A 标签的前面?
  • Mybatis 的 Xml 映射文件中,不同的 Xml 映射文件,id 是否可以重复?
  • Mybatis 都有哪些 Executor 执行器?它们之间的区别是什么?
  • Mybatis 中如何指定使用哪一种 Executor 执行器?
  • Mybatis 执行批量插入,能返回数据库主键列表吗?
  • Mybatis 是否可以映射 Enum 枚举类?
  • 如何获取自动生成的(主)键值?
  • 在 mapper 中如何传递多个参数?
  • resultType resultMap 的区别?
  • 使用 MyBatis 的 mapper 接口调用时有哪些要求?
  • Mybatis 比 IBatis 比较大的几个改进是什么?
  • IBatis 和 MyBatis 在核心处理类分别叫什么?在细节上的不同有哪些?
  • (2)再来看解析

    题目+解析,篇幅有点多,我就不一一列举了,不过有整理成PDF文档如下图所示(私信我“复习”可免费下载)

    “金三”已过半,关于MyBatis,你能抵挡住面试官的连环炮轰吗?

    第四步 既然谈到了MyBatis,那没理由不来说说SSM框架里的另外两个咯

    4.1 第一个要说的是Spring

    Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。

    • 目的:解决企业应用开发的复杂性
    • 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
    • 范围:任何Java应用

    Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架

    关于Spring的一些学习笔记这边也是整理有的,我就不一一分析了,有面试有笔记也有书籍

    “金三”已过半,关于MyBatis,你能抵挡住面试官的连环炮轰吗?

    4.2 第二个自然就是SpringMVC

    Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts 2(一般老项目使用)等。

    好吧,SpringMVC也有相关的笔记+面试... ...

    “金三”已过半,关于MyBatis,你能抵挡住面试官的连环炮轰吗?

    说了这么多,不知道有没有说到你心坎里呢,整理这些笔记面试资料等等,花了好长时间,不过没关系,还是那句话有需要即可免费分享,希望能够助你“金三”或者“银四”一臂之力吧!

    感兴趣的朋友可来关注一下免费下载分享的方式:转发+私信关键词“ 复习”!!!


    分享到:


    相關文章: