手寫mybatis(二).實現(xiàn)映射器的注冊和使用

本文知識要點:

1.?工廠模式的使用

2.泛型的使用

3.ClassScanner.scanPackage(packageName)?的使用,這個類是hutool?包下的一個類坐搔,這個方法功能是拳氢,將包下的文件掃描之后返回類的模版類型Class?的set?集合

4.Class?模板類的使用践剂,包括方法?Class?.isInterface()?判斷是否是接口


situation:?

目前實現(xiàn)了簡單的映射器Mapper代理工廠,主要作用是使用動態(tài)代理 圣蝎,將dao層的接口代理出來,以便調(diào)用處調(diào)用


task:

1.需要將dao層接口與mapper?映射器關(guān)聯(lián)起來,需要創(chuàng)建一個注冊器衡瓶,來掃描包路徑完成mapper?的注冊

2.將?處理數(shù)據(jù)庫捅彻,mapper相關(guān)的操作?封裝在sqlsession里,并為sqlsession?提供一個工廠類


action:

1.?映射器注冊器執(zhí)行流程如下鞍陨,圖來自小傅哥的博客

步驟:

1.創(chuàng)建核心類注冊器 MapperRegistry 步淹,MapperRegistry?對外提供?addMappers(String packagePath)方法,該方法的功能是诚撵,根據(jù)入?yún)⒌陌窂界择桑瑢⒃撀窂较碌奈募呙瑁成涑删唧w的類對象寿烟,存儲在MapperRegistry? 的成員變量里 消略,后續(xù)需要使用具體的mapper ,傳入mapper類型嗡贺,對應(yīng)的在這個成員變量里查找并返回。


2.創(chuàng)建sqlsession,該類封裝了查詢數(shù)據(jù)庫的一些列操作蠕啄,如selectOne(),update(),getMapper()?等采缚,


3.?創(chuàng)建sqlsession的工廠類SqlSessionFactory锄贼,負(fù)責(zé)sqlsession?實例的獲惹凇;


4.?編寫?sqlsession?與?SqlSessionFactory?的實現(xiàn)類待锈;


5.?編寫測試用例:測試用例流程是:

? ?5.1 創(chuàng)建注冊器?MapperRegistry?

? ?5.2?執(zhí)行注冊器addMappers方法

? ?5.3將指定路徑下的Dao?接口代理類注冊到注冊器里

? ?5.4將注冊器作為sqlsessionFactory?的構(gòu)造器入?yún)⒛洌瑒?chuàng)建sqlsessionFactory? 對象,通過?這個工廠類獲得sqlsession對象竿音,這樣這個sqlsession?對象就間接持有了Dao?接口代理類

? ?5.5獲得映射器代理類對象和屎,執(zhí)行指定的方法



result:

見本文知識要點

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市春瞬,隨后出現(xiàn)的幾起案子柴信,更是在濱河造成了極大的恐慌,老刑警劉巖宽气,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件随常,死亡現(xiàn)場離奇詭異,居然都是意外死亡抹竹,警方通過查閱死者的電腦和手機线罕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門止潮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窃判,“玉大人,你說我怎么就攤上這事喇闸“懒眨” “怎么了询件?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長唆樊。 經(jīng)常有香客問我宛琅,道長,這世上最難降的妖魔是什么逗旁? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任嘿辟,我火速辦了婚禮,結(jié)果婚禮上片效,老公的妹妹穿的比我還像新娘红伦。我一直安慰自己,他們只是感情好淀衣,可當(dāng)我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布昙读。 她就那樣靜靜地躺著,像睡著了一般膨桥。 火紅的嫁衣襯著肌膚如雪蛮浑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天只嚣,我揣著相機與錄音沮稚,去河邊找鬼。 笑死册舞,一個胖子當(dāng)著我的面吹牛壮虫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播环础,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼囚似,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了线得?” 一聲冷哼從身側(cè)響起饶唤,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎贯钩,沒想到半個月后募狂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡角雷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年祸穷,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片勺三。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡雷滚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出吗坚,到底是詐尸還是另有隱情祈远,我是刑警寧澤呆万,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站车份,受9級特大地震影響谋减,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜扫沼,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一出爹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧缎除,春花似錦以政、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至技矮,卻和暖如春抖誉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背衰倦。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工袒炉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人樊零。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓我磁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親驻襟。 傳聞我的和親對象是個殘疾皇子夺艰,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 環(huán)境: JDK1.8,Mysql5.7沉衣,maven3.6.1郁副,IDEA 回顧: JDBC,Mysql豌习,java基礎(chǔ)...
    咕嚕咕嚕嗝閱讀 199評論 0 0
  • Mybatis-9.28 環(huán)境: JDK1.8 Mysql 5.7 maven 3.6.1 IDEA 回顧: JD...
    眼若繁星丶閱讀 230評論 0 1
  • Mybatis-9.28 環(huán)境: JDK1.8 Mysql 5.7 maven 3.6.1 IDEA 回顧: JD...
    友人Ay閱讀 345評論 0 1
  • MyBatis 是一款優(yōu)秀的持久層框架存谎,它支持自定義 SQL、存儲過程以及高級映射肥隆。MyBatis 免除了幾乎所有...
    Mzr_e487閱讀 359評論 0 1
  • 目錄 1-3.持久層(名詞既荚,概念) 1-4.為啥需要Mybatis? 5栋艳、解決屬性名和字段名不一致的問題 10-1...
    Java架構(gòu)師頂頂閱讀 1,335評論 0 0