mybatis中使用dao實現類的執行過程分析
斷點調試和跟蹤源碼技能
1.在實現類和測試類中打斷點

2.啟用debug調試,下一步得到實現類
3.選中SqlSession,右鍵單擊
4.選中SqlSession,右鍵單擊,選擇Show Implementations顯示它的所有實現,通過斷點調試,我們知道選擇DefaultSqlSession
5.當我們選中DefaultSqlSession,上方會有顯示,然后雙擊
6.進到DefaultSqlSession中,找到我們在findAll()中調用的selectList,發現最終執行的是SqlSession的selectList方法,在這個方法中找到executor的query方法
7.發現Executor又是一個接口,繼續打斷點,找實現類到底是哪一個
8.斷點調試,得知Executor的實現類是CachingExecutor

9.由此通過diagram找到CachingExecutor
10.打開CachingExecutor,在query中打斷點,調試下一步,可以進到此處。又發現一個query方法
11.繼續打斷點,debug下一步進到此處
12.接下來在這兩處打斷點,繼續下一步調試,發現走的第二行。
13.由delegate找到SimpleExecutor,所以在Executor類圖中選擇SimpleExecutor
14.打開SimpleExecutor,找到queryFromDatabase方法
15.queryFromDatabase方法中有doQuery方法,跟進,發現這是一個抽象方法
所以最終執行的是SimpleExecutor的doQuery方法
❤️非常重要的一張圖-分析編寫dao實現類Mybatis的執行過程(在新標簽中打開圖片查看)
❤️非常重要的一張圖-分析代理dao的執行過程
