精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

看到Mybatis源碼就感到煩躁,怎么辦?

運維 數(shù)據(jù)庫運維
因為面試的時候,面試官很喜歡問:你看過什么框架源碼?JDK源碼也行。這時候,如果回答沒有看過,雖然沒讓你立馬回去等通知。但也許,你在面試官心中的印象就大打折扣了。

 [[357382]]

背景

最近,聽到很多吐槽:看到源碼,心中就感到十分糾結(jié)、特別煩惱。

為什么糾結(jié)?

因為面試的時候,面試官很喜歡問:你看過什么框架源碼?JDK源碼也行。

這時候,如果回答沒有看過,雖然沒讓你立馬回去等通知。但也許,你在面試官心中的印象就大打折扣了。

如果回答看過,并且還能較為流利地說上一番,那面試官或許會在心里贊嘆:小伙子可以呀!(PS:很多面試官自己也沒看過,或者看過很多也忘了)。

總之,你要是能說上個123,那給面試官的印象就會杠杠滴好。何愁工作?何愁加薪?

為什么煩?

大部分人的情況是:源碼不是沒有看過,而是每次只看得下一部分。為什么只看得下一部分呢?通常有下面三種原因:

缺乏技術(shù)支撐。看源碼是需要技術(shù)支撐的,不是隨便一個小白也能看懂的。沒有一些技術(shù)支撐,你頂多看看一小段,然后就看不下去,于是就放棄了。

缺乏正確心態(tài)。看源碼確實挺無聊的,如果大家心態(tài)沒放好,把它當(dāng)做一種任務(wù)去做,肯定覺得無聊,而且很容易放棄。

缺乏足夠時間。確實很忙,經(jīng)常看了一部分后,天天加班,沒時間看,忙完后又忘了之前正在看的某某源碼。

個人建議

對于一般java程序員來說,閱讀源碼之前到底需要些什么技能呢?

個人建議,以下基礎(chǔ)知識必須會一些:

會設(shè)計模式:包括單例模式、工廠模式、代理模式、裝飾器模式、責(zé)任鏈模式、模板方法模式等。

會猜測:大膽的猜測,在看源碼的時候,多站在高層次想想,如果你是Mybatis的設(shè)計者,你會怎么設(shè)計?

會挑重點看:別被沒寫參數(shù)校驗、類型校驗等問題卡在那里。

會畫圖:流程圖、類圖等,找一些在線畫圖工具,媒體畫完就保存下來,如果中途一段時間不看了,再回頭看看這些圖,也能快速繼續(xù)。

Mybatis源碼分析

今天,我們就來看看Mybatis源碼的閱讀,具體舉個例子來看看:

案例和疑問

從我們最初的demo中開始:

  1. public static void main(String[] args) { 
  2.         String resource = "mybatis-config.xml"
  3.         InputStream inputStream = null
  4.         SqlSession sqlSession = null
  5.         try { 
  6.             inputStream = Resources.getResourceAsStream(resource); 
  7.             SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); 
  8.             sqlSession = sqlSessionFactory.openSession();  
  9.             User user = sqlSession.selectOne("com.tian.mybatis.mapper.UserMapper.selectById", 1); 
  10.             System.out.println(user);  
  11.         } catch (Exception e) { 
  12.             e.printStackTrace(); 
  13.         } finally { 
  14.             try { 
  15.                 inputStream.close(); 
  16.             } catch (IOException e) { 
  17.                 e.printStackTrace(); 
  18.             } 
  19.             sqlSession.close(); 
  20.         } 
  21.     } 

關(guān)于獲取數(shù)據(jù)流inputStream,這個我們就不討論了,我們主要關(guān)注重點。

對于上面demo,我們可以分成五個步驟:

第一步,創(chuàng)建一個工廠類sqlSessionFactory。

配置文件的解析就是在這里完成的。包括mybatis-config.xml和我們的Mapper.xml映射器文件。這一步我們關(guān)心的內(nèi)容是:解析的時候做了什么?產(chǎn)生了什么對象,解析的結(jié)果放在哪里的。因為這將意味著,我們后面使用的時候去哪里獲取這項配置項內(nèi)容。

第二步,通過SqlSessionFactory創(chuàng)建一個SqlSession。

那么問題來了,SqlSession中定義了各種增刪改查的API,是給客戶端調(diào)用,返回的是什么實現(xiàn)類?除了SqlSession以外,我們還創(chuàng)建了什么對象,創(chuàng)建了什么環(huán)境?

第三步,獲取到一個Mapper對象。

問題來了UserMapper.java是一個接口,并沒有為它創(chuàng)建實現(xiàn)類,那又是怎么被實例化的呢?我們使用的這個Mapper對象到底是什么對象呢?為什么要從SqlSession里去獲取呢?為什么傳進(jìn)去一個接口,然后還要用一個接口去接收呢?

第四步,調(diào)用接口方法。

問題是我們的接口沒有實現(xiàn)類,為什么就可以直接調(diào)用它的方法呢?那它調(diào)用的是誰的方法呢?是如何把SQL給關(guān)聯(lián)起來的呢?是如何獲取到數(shù)據(jù)的呢?

第五步,關(guān)閉相關(guān)資源。

開始源碼分析過程

由于涉及到內(nèi)容較多,下面就用幾張圖來展示整個流程。我們可以通過這幾張圖來快速翻閱Mybatis的源碼。

第一步

  1. SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); 

這一句代碼的整個流程如下:

根據(jù)inputStream,解析配置文件,創(chuàng)建出一個DefaultSqlSessionFactory默認(rèn)的SqlSessionFactory 實現(xiàn)類。構(gòu)建出一個工廠類,這個工廠類專門用來創(chuàng)建SqlSession對象的。

第二步

  1. SqlSession  sqlSession = sqlSessionFactory.openSession(); 

獲取SqlSession的整個流程如下:

第三步

  1. User user = sqlSession.selectOne("com.tian.mybatis.mapper.UserMapper.selectById", 1); 

第三步和第四步就是這行代碼畫的。

這一步是返回一個映射器代理類,映射器代理類專門用來給UserMapper接口和UserMapper.xml綁定的代理類。創(chuàng)建出來的代理類就可以實例化了,然后就可以調(diào)用UserMapper接口的方了。

第四步:調(diào)用代理對象執(zhí)行SQL的整個過程。

第五步,關(guān)閉資源。

希望大家按照這個流程,找點源碼看看。聽別人的看別人永遠(yuǎn)是別人的。

動起來吧!

總結(jié)

其實,沒什么好總結(jié)的。好好領(lǐng)悟一下為什么糾結(jié)吧!同時希望能看看我的建議,作為一個過來人,希望能幫助大家少走彎路。

最后,對于Mybatis源碼閱讀的整個流程,最好是本地環(huán)境搭起來,然后搞個demo,debug模式一步一步走起。

本文轉(zhuǎn)載自微信公眾號「 Java后端技術(shù)全棧」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系 Java后端技術(shù)全棧公眾號。

 

責(zé)任編輯:武曉燕 來源: Java后端技術(shù)全棧
相關(guān)推薦

2024-07-15 09:08:51

源碼debug根節(jié)點

2022-05-17 10:41:20

接口JSON數(shù)據(jù)

2022-12-19 11:31:57

緩存失效數(shù)據(jù)庫

2017-02-21 13:11:43

SDN網(wǎng)絡(luò)體系SDN架構(gòu)

2024-04-22 08:17:23

MySQL誤刪數(shù)據(jù)

2009-11-03 08:56:02

linux死機(jī)操作系統(tǒng)

2022-05-19 08:01:49

PostgreSQL數(shù)據(jù)庫

2019-10-12 09:50:46

Redis內(nèi)存數(shù)據(jù)庫

2018-01-28 20:39:39

戴爾

2022-07-05 11:48:47

MySQL死鎖表鎖

2015-10-22 09:09:59

BAT投資VC

2020-12-30 08:35:59

Linux運維Linux系統(tǒng)

2024-10-09 17:06:52

RedisHash哈希表

2019-08-29 07:35:29

網(wǎng)站404空白nginx

2017-12-21 20:01:38

潤乾報表

2011-07-28 13:45:06

2020-03-18 19:00:29

電腦內(nèi)存不足系統(tǒng)

2022-07-05 14:19:30

Spring接口CGLIB

2024-10-18 09:55:50

RedisHash數(shù)據(jù)

2011-11-16 10:02:48

DNSDNS記錄DNS記錄消失
點贊
收藏

51CTO技術(shù)棧公眾號

免费看日本毛片| av中文一区| 亚洲欧美日本国产专区一区| 欧美日韩视频在线一区二区| 91产国在线观看动作片喷水| 佐山爱在线视频| 日本不卡不卡| 欧美熟妇精品一区二区 | 一本到不卡免费一区二区| 成人信息集中地欧美| 国产熟女一区二区| 第四色男人最爱上成人网| 久久综合色播五月| 欧美亚洲成人精品| 日本丰满少妇裸体自慰| 超碰在线资源| 成人国产精品免费观看动漫| 欧美激情视频网址| 男女性杂交内射妇女bbwxz| 26uuu亚洲电影在线观看| 国产真实乱偷精品视频免| 色哟哟入口国产精品| 91视频这里只有精品| 生活片a∨在线观看| 久久精品国产亚洲一区二区三区| 在线日韩欧美视频| 日本在线一二三区| 免费的黄网站在线观看| 9久草视频在线视频精品| 性色av一区二区三区红粉影视| 少妇一级淫片免费放播放| 极品视频在线| 国产无遮挡一区二区三区毛片日本| 国产91在线高潮白浆在线观看| 性猛交ⅹxxx富婆video | 欧美变态凌虐bdsm| 丁香花在线影院观看在线播放| 少妇喷水在线观看| 美女91精品| 日韩中文字幕国产精品| wwwww在线观看| 99tv成人影院| 天天操天天色综合| 色一情一乱一伦一区二区三区| 国产又粗又猛又黄又爽| 神马电影久久| 5566中文字幕一区二区电影| 日韩欧美视频免费在线观看| 天堂网在线资源| 国产aⅴ综合色| 日本高清+成人网在线观看| 免费黄色国产视频| 国产一级成人av| 欧美亚洲免费在线一区| 视频一区二区视频| 午夜av免费观看| 美女视频黄频大全不卡视频在线播放| 欧美区在线播放| 美女被到爽高潮视频| 国产一区二区三区免费观看在线 | 国产精品视频一二区| 另类小说综合欧美亚洲| 91久久久在线| www.久久久久久久| 欧美1区3d| 亚洲一区二区久久久| 少妇欧美激情一区二区三区| 午夜av成人| 五月婷婷久久丁香| 波多野结衣三级在线| 成码无人av片在线观看网站| 久久一区二区三区国产精品| 日本在线播放不卡| 深爱激情五月婷婷| 久久这里只有精品6| 日韩精品欧美专区| 精品麻豆一区二区三区| 久久精品男人天堂av| 日产精品高清视频免费| 麻豆网站在线看| 亚洲线精品一区二区三区| 中文字幕在线亚洲精品| 欧洲一区av| 成人性生交大片免费看中文网站| 国产日韩亚洲欧美| 国产一级18片视频| 亚洲东热激情| 欧美日韩国产成人| 啦啦啦免费高清视频在线观看| 蜜臀a∨国产成人精品| av一区二区三区四区电影| 97人人爽人人爽人人爽| 国产成人精品www牛牛影视| 久久久久久亚洲精品不卡4k岛国 | 国产经典欧美精品| 国产欧美韩国高清| 一级久久久久久| 先锋a资源在线看亚洲| 国产精品亚洲第一区| 性生交生活影碟片| 国产精品综合久久| 成人在线观看视频网站| 天堂av资源在线| 中文字幕一区二区三区乱码在线| 亚洲制服中文| 日本视频在线观看| 午夜欧美在线一二页| 午夜精品久久久久久久99热影院| 欧美在线关看| 国产视频精品自拍| 国产精品无码永久免费不卡| 欧美a级成人淫片免费看| 少妇高潮久久77777| 国产精品theporn动漫| 伊人成人在线| 成人日韩在线电影| 国产高清视频在线| 国产精品毛片久久久久久| 亚洲欧洲精品在线| 国产精品久久麻豆| 色香色香欲天天天影视综合网| 91精品国产高清91久久久久久| 久久激情电影| 久久视频免费观看| 久久久久人妻一区精品色欧美| 亚洲夜间福利| 91在线视频免费| 国产又色又爽又黄又免费| 久久精品免费在线观看| 国产超级av在线| 最新欧美电影| 国产视频一区在线| 国产成人无码一区二区三区在线| 先锋a资源在线看亚洲| 国产99在线免费| 欧美新色视频| 懂色aⅴ精品一区二区三区蜜月| 六月丁香婷婷在线| 国产精品亚洲成在人线| 欧美一区二区三区成人| 在线视频 日韩| 国产精品hd| 国产激情久久久| 99国产揄拍国产精品| 99久久国产综合精品女不卡| 五月天久久综合网| 欧美成人影院| 日韩一区二区电影| 国产黄色网址在线观看| 天天做综合网| 热99在线视频| 玖玖综合伊人| 一区二区久久久久久| 国产xxxxx在线观看| 香蕉久久精品| 欧美日本精品在线| 超碰免费在线97| 国产欧美综合色| 成人免费毛片在线观看| 波多野结衣欧美| xxxxx成人.com| 国产免费黄色录像| 亚洲午夜精品在线| 特大黑人巨人吊xxxx| 久久久久久黄| 一个色的综合| 欧美成人一级| 少妇久久久久久| 国产免费黄色网址| 亚洲国产精品久久久男人的天堂| 我要看一级黄色大片| 精品久久ai| 欧美日韩国产va另类| 日本免费一区视频| 亚洲老妇xxxxxx| 亚欧美在线观看| 亚洲xxx拳头交| 国产精品久久久久久久久借妻| 日韩一区二区三区在线观看视频| 亚洲v中文字幕| 欧美大波大乳巨大乳| 精品亚洲成a人| 日本在线观看一区二区| 色狠狠一区二区三区| 亚洲欧美激情精品一区二区| 日本熟妇成熟毛茸茸| 国产一区二区在线免费观看| 妺妺窝人体色777777| 欧美一级精品| 国产精品激情自拍| 2024最新电影在线免费观看| 亚洲美女av黄| 国产视频手机在线观看| 色综合久久综合| 久久久精品人妻一区二区三区四 | 欧美一级搡bbbb搡bbbb| 国产又大又黄视频| 亚洲三级在线播放| www.色就是色.com| 91综合视频| 国产一区喷水| 涩涩av在线| 日韩精品视频免费专区在线播放 | 国产夫妻性爱视频| 久久精品国产久精国产| 激情伊人五月天| 国产高清久久| 欧美日韩精品中文字幕一区二区| 免费看男女www网站入口在线| 日韩一二三在线视频播| 日韩在线免费看| 欧美tk丨vk视频| 在线免费av片| 亚洲女子a中天字幕| 西西444www无码大胆| 成人精品一区二区三区中文字幕| jizz欧美性11| 日本最新不卡在线| 国产又大又长又粗又黄| 欧美偷拍综合| 欧美日韩喷水| 农村少妇一区二区三区四区五区 | 久久久久久久久国产精品| 韩国av免费在线| 亚洲成人1区2区| 翔田千里88av中文字幕| 国产激情视频一区二区在线观看| 91最新在线观看| 久久精品影视| 亚洲国产一区二区在线| 欧美人与拘性视交免费看| 国新精品乱码一区二区三区18| 久久亚洲资源| 精品无码久久久久久国产| 成人激情四射网| 欧美一区二区女人| 国产精品久久久久久久免费看| 欧美亚洲自拍偷拍| 中文字幕一区二区人妻痴汉电车| 亚洲精品视频自拍| 麻豆网址在线观看| 成人黄页毛片网站| 中文字幕无人区二| 国产91精品免费| 免费国偷自产拍精品视频| 国产精品亚洲а∨天堂免在线| 日本在线观看视频一区| 国产视频欧美| 欧美一级免费在线观看| 国产高清一区| 老司机午夜免费福利视频| 杨幂一区二区三区免费看视频| 国产精品一区二区久久国产| 成人性片免费| 国产91精品久| 香蕉久久免费电影| 国产精品旅馆在线| 成人影院在线视频| 欧美亚洲国产日本| 一呦二呦三呦精品国产| 成人免费福利在线| 一级毛片精品毛片| 国产精品无码专区在线观看| 久久av影院| 97神马电影| 四虎影视精品永久在线观看| 2019国产精品视频| 欧美美女啪啪| 亚洲v国产v在线观看| 91久久久精品国产| 高清欧美精品xxxxx| 日韩精品一级中文字幕精品视频免费观看 | 青青草精品视频在线观看| 精一区二区三区| 已婚少妇美妙人妻系列| 欧美日韩免费| www.浪潮av.com| 免费成人在线观看视频| 日本wwwxx| 久久久久久久久久久久久久久99| 911亚洲精选| 美日韩一级片在线观看| 男人的天堂免费| 久久久青草青青国产亚洲免观| 国产亚洲精品久久久久久豆腐| 亚洲妇熟xx妇色黄| 国产99久久久久久免费看| 色综合一个色综合| 97超碰资源站| 日韩电影中文字幕在线观看| 中文字幕在线播放| 亚洲最新av网址| 手机电影在线观看| 欧美日韩xxxxx| 奇米777日韩| 成人av资源| 色婷婷综合网| 国模无码视频一区二区三区| 在线播放精品| 日本特黄a级片| av不卡免费电影| 国产真实乱在线更新| 欧美性猛交xxxx富婆| 中文在线第一页| 色综合久久综合中文综合网| www日本高清| 中文字幕日韩专区| 男人在线资源站| 欧美一区二三区| 亚洲伊人影院| 一区二区三区四区在线视频| 夜久久久久久| 精品中文字幕av| 国产精品一区三区| 亚洲综合第一区| 亚洲素人一区二区| 久久久精品毛片| 日韩激情视频在线| 888av在线视频| 日产精品99久久久久久| 天堂久久av| 久久国产欧美精品| 极品少妇一区二区三区| 手机在线观看日韩av| 国产精品色呦呦| 一级一级黄色片| 亚洲欧美日韩国产中文专区| 91桃色在线| 国产精品毛片va一区二区三区| 台湾色综合娱乐中文网| 加勒比成人在线| 成人白浆超碰人人人人| 欧美日韩国产精品一区二区三区| 欧美日韩国产色| 欧美自拍第一页| 久久免费在线观看| 嫩草伊人久久精品少妇av杨幂| 免费观看成人在线| 午夜激情久久| 国产色视频在线播放| 亚洲国产精品v| 天天操天天射天天爽| 欧美xxxxxxxxx| 日本在线视频www鲁啊鲁| 亚洲在线观看视频| 国产精品多人| 韩国日本美国免费毛片| 国产伦精品一区二区三区免费 | 一区二区三区四区高清精品免费观看| 日韩三级av在线| 亚洲精品97久久| 国产黄网站在线观看| 91在线国产电影| 亚洲欧美伊人| 国产极品一区二区| 欧美午夜xxx| 国产三级电影在线| 国产精品一久久香蕉国产线看观看| 婷婷激情图片久久| 亚洲精品一二三四| 午夜精品视频在线观看| 欧美香蕉爽爽人人爽| 国产美女精品免费电影| 一区二区三区毛片免费| 无码日韩人妻精品久久蜜桃| 日本一区二区视频在线| 国产精选久久久| 久久免费成人精品视频| 国产一区二区三区天码| 水蜜桃色314在线观看| 久久一留热品黄| 国产又爽又黄免费软件| 欧美激情极品视频| 一区二区三区视频免费观看| 色片在线免费观看| 一区二区三区在线影院| 国产成人三级在线观看视频| 欧美性一区二区三区| 久久婷婷蜜乳一本欲蜜臀| 乱码一区二区三区| 色丁香久综合在线久综合在线观看 | 男女精品视频| 中文字幕观看av| 亚洲成人激情在线观看| 97超碰在线公开在线看免费| 国产日韩久久| 麻豆精品一二三| 日本亚洲欧美在线| 中文字幕久热精品视频在线| 97视频一区| 污版视频在线观看| 黄色一区二区三区| 久久黄色美女电影| 欧美日韩天天操| 丁香六月综合激情| 中文字幕+乱码+中文乱码91| 亚洲91av视频| 一区二区三区国产精华| 亚洲AV无码成人精品区明星换面| 精品久久久久av影院 |