手寫mybatis 筆記總覽

2022-09-27

背景:?學(xué)習(xí)小傅哥的手寫mybatis?項(xiàng)目,在學(xué)習(xí)的過程中有所收獲,做筆記記錄一下。

學(xué)習(xí)的所得有以下兩個(gè)方面:

1.從整體設(shè)計(jì)來說,學(xué)習(xí)了mybatis?這樣的復(fù)雜項(xiàng)目他的設(shè)計(jì)思路,運(yùn)用了大量設(shè)計(jì)模式,做職責(zé)分離,程序解耦,服務(wù)分治處理,使得這個(gè)項(xiàng)目在整體上結(jié)構(gòu)很清晰,在后期維護(hù)和擴(kuò)展上有很多優(yōu)勢。

2.深入到代碼層面來說,學(xué)習(xí)了mybatis?的業(yè)務(wù)處理邏輯,明白了,在整體優(yōu)秀的框架下,億點(diǎn)點(diǎn)細(xì)節(jié)也是必不可少的,細(xì)節(jié)落實(shí)在每件需要處理的事情上。在代碼層面,我獲得了反射,代理,數(shù)據(jù)庫連接池,動(dòng)態(tài)上下文,等知識要點(diǎn)的深入了解,這些要點(diǎn)會(huì)在后期的筆記中一一呈現(xiàn)。

接下來我從整體視角來對這個(gè)項(xiàng)目做介紹和概述:

手寫mybatis?這個(gè)項(xiàng)目是mybatis的迷你縮小版,濃縮了mybatis?的核心功能,具體核心功能如下:

1.讀取xml?文件,其中包括配置文件,具體的mapper.xml

2.數(shù)據(jù)庫連接管理,其中包括數(shù)據(jù)庫池化技術(shù)

3.動(dòng)態(tài)代理,主要用來代理mapper?的接口文件,將其與mapper.xml?里的sql?一一對應(yīng)起來

4,反射對象,具體是將mapper.xml?里查詢的入?yún)ⅲ?和查詢后的結(jié)果集通過反射的方式包裝起來,作為一個(gè)結(jié)果集返回

5.動(dòng)態(tài)上下文,主要是用于動(dòng)態(tài)sql?的生成,生成之后,將其加入上下文之中,要用到直接調(diào)用

6.?整合到spring ,對象的生成托管到spring bean?容器里,以便與spring?項(xiàng)目相結(jié)合

這里借用小傅哥博客上的架構(gòu)圖,詳情


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容