mybatis源码深度解析_30天消化MyBatis源码解析笔记,吊打面试官,offer接到手软
MyBatis 是一個(gè)優(yōu)秀的 Java 持久化框架,SSM 框架組合(Spring + SpringMVC + Mybatis),依賴(lài) MyBatis 搭建的項(xiàng)目更是數(shù)不勝數(shù),在互聯(lián)網(wǎng)公司的使用中,占據(jù)了大片江山,你在使用 MyBatis 嗎?會(huì)使用你真的了解 MyBatis 嗎?
剛好,趁著現(xiàn)在還有時(shí)間,這里將技術(shù)面試Mybatis中最常見(jiàn)的面試問(wèn)題和解答思路整理一下,由于篇幅原因這里只展示了目錄和內(nèi)容截圖展示,下面是這份MyBatis的內(nèi)容展示一起來(lái)看一下吧。
一、MyBatis筑基
MyBatis 是一個(gè)容易上手的持久層框架,使用者通過(guò)簡(jiǎn)單的學(xué)習(xí)即可掌握其常用特性的用法,這也是 MyBatis 被廣泛使用的原因之一。在深入分析 MyBatis 源碼前,我想先向大家介紹一下 MyBatis 的一些基礎(chǔ)知識(shí)這一部分針對(duì)基礎(chǔ)差點(diǎn)的,選擇性跳過(guò)。
目錄
內(nèi)容展示
二、配置件解析過(guò)程
比較了JDBC、SpringJDBC、Hibernate和 MyBatis等 4 種持久層技術(shù)的優(yōu)缺點(diǎn),以及各自的使用場(chǎng)景。最后演示了單獨(dú)使用 MyBatis,和在Spring 中使用 MyBatis 等兩種不同的方式。
目錄
內(nèi)容展示
三、映射件解析過(guò)程
分析映射文件解析的過(guò)程。與配置文件不同,映射文件用于配置 SQL 語(yǔ)句,字段映射關(guān)系等。映射文件中包含"、、、 < sql> 等二級(jí)節(jié)點(diǎn),這些節(jié)點(diǎn)將在接下來(lái)內(nèi)容中進(jìn)行分析
目錄
內(nèi)容展示
四、SQL 執(zhí)流程
對(duì) MyBatis 執(zhí)行 SQL 的過(guò)程進(jìn) 行較為詳盡的分析。該過(guò)程比較復(fù)雜,涉及的技術(shù)點(diǎn)很多。包括但不限于以下技術(shù)點(diǎn):
1. 為 mapper 接口生成實(shí)現(xiàn)類(lèi)
2. 根據(jù)配置信息生成 SQL,并將運(yùn)行時(shí)參數(shù)設(shè)置到 SQL 中
3. 一二級(jí)緩存的實(shí)現(xiàn)
4. 插件機(jī)制
5. 數(shù)據(jù)庫(kù)連接的獲取與管理
6. 查詢(xún)結(jié)果的處理,以及延遲加載等
如果大家能掌握上面的技術(shù)點(diǎn),那么對(duì) MyBatis 的原理將會(huì)有很深入的理解。
目錄
內(nèi)容展示
五、內(nèi)置數(shù)據(jù)源
MyBatis 支持三種數(shù)據(jù)源配 置,分別為 UNPOOLED、POOLED 和 JNDI。并提供了兩種數(shù)據(jù)源實(shí)現(xiàn),分別是 UnpooledDataSource 和 PooledDataSource 。 在這三種數(shù)據(jù)源配置中, UNPOOLED 和 POOLED 是我們最常用的兩種配置,這兩種數(shù)據(jù)源也是本章要重點(diǎn)分析的對(duì)象。至于 JNDI, MyBatis 提供這種數(shù)據(jù)源的目的是為了讓其能夠運(yùn)行在 EJB 或應(yīng)用服務(wù)器等容器中
目錄
內(nèi)容展示
六、緩存機(jī)制
在 Web 應(yīng)用中,緩存是必不可少的組件。通常我們都會(huì)用 Redis 或 memcached 等緩 存中間件,攔截大量奔向數(shù)據(jù)庫(kù)的請(qǐng)求,以減輕數(shù)據(jù)庫(kù)壓力。作為一個(gè)重要的組件,MyBatis 自然也在內(nèi)部提供了相應(yīng)的支持。通過(guò)在框架層面增加緩存功能,可減輕數(shù)據(jù)庫(kù)的壓力,同 時(shí)又可以提升查詢(xún)速度,可謂一舉兩得。MyBatis 緩存結(jié)構(gòu)由一級(jí)緩存和二級(jí)緩存構(gòu)成,這 兩級(jí)緩存均是使用 Cache 接口的實(shí)現(xiàn)類(lèi)。因此本章將首先會(huì)向大家介紹 Cache 幾種實(shí)現(xiàn)類(lèi) 的源碼,然后再分析一級(jí)和二級(jí)緩存的實(shí)現(xiàn)。
目錄
七、插件機(jī)制
一般情況下,開(kāi)源框架都會(huì)提供插件或其他形式的拓展點(diǎn),供開(kāi)發(fā)者自行拓展。這樣的 好處是顯而易見(jiàn)的,一是增加了框架的靈活性。二是開(kāi)發(fā)者可以結(jié)合實(shí)際需求,對(duì)框架進(jìn)行 拓展,使其能夠更好的工作。以 MyBatis 為例,我們可基于 MyBatis 插件機(jī)制實(shí)現(xiàn)分頁(yè)、 分表,監(jiān)控等功能。由于插件和業(yè)務(wù)無(wú)關(guān),業(yè)務(wù)也無(wú)法感知插件的存在。因此可以無(wú)感植入 插件,在無(wú)形中增強(qiáng)功能。 開(kāi)發(fā) MyBatis 插件需要對(duì) MyBatis 比較深了解才行,一般來(lái)說(shuō)最好能夠掌握 MyBatis 的源碼,門(mén)檻相對(duì)較高。本篇文章在分析完 MyBatis 插件機(jī)制后,會(huì)手寫(xiě)一個(gè)簡(jiǎn)單的分頁(yè) 插件,以幫助大家更好的掌握 MyBatis 插件的編寫(xiě)。
目錄
內(nèi)容展示
市面上真正適合學(xué)習(xí)的MyBatis資料太少,有的書(shū)或資料雖然講得比較深入,但是語(yǔ)言晦澀難懂,大多數(shù)人看完這些書(shū)基本都是從入門(mén)到放棄,有需要獲取學(xué)習(xí)資料的朋友關(guān)注作者并轉(zhuǎn)發(fā),私信作者【學(xué)習(xí)】二字,便可以領(lǐng)取學(xué)習(xí)資料喔
總結(jié)
以上是生活随笔為你收集整理的mybatis源码深度解析_30天消化MyBatis源码解析笔记,吊打面试官,offer接到手软的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 努比亚手机浏览器 安全证书失效_浏览器提
- 下一篇: 边缘检测robert原理_在操作机器视觉