“金三”已過半,關於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,你能抵擋住面試官的連環炮轟嗎?

    說了這麼多,不知道有沒有說到你心坎裡呢,整理這些筆記面試資料等等,花了好長時間,不過沒關係,還是那句話有需要即可免費分享,希望能夠助你“金三”或者“銀四”一臂之力吧!

    感興趣的朋友可來關注一下免費下載分享的方式:轉發+私信關鍵詞“ 複習”!!!


    分享到:


    相關文章: