2023版千鋒教育MyBatis教程零基礎(chǔ)速成(核心講解,全面掌握)

課程認(rèn)認(rèn)真真看完了,感謝老師,總結(jié)了一些注意事項、問題與討論。
1.P13:多參數(shù)的參數(shù)傳遞為什么需要加 @Param 注解,老師是從 形參 角度進(jìn)行講解,老師的講解我覺得更傾向于是更深層次的概念,個人覺得會讓我們普通學(xué)生聽起來比較抽象。我搜了下直接從 mybatis 源碼角度即底層維護(hù)了一個map集合與對于其key設(shè)置的角度進(jìn)行分析,讓我覺得比較更加切實理解。我結(jié)合老師說的寫了一篇關(guān)于多參數(shù)的參數(shù)傳遞報錯問題源碼層面分析的博客:https://blog.csdn.net/qq_62982856/article/details/131526746
2.P19:老師講的 mybatis 分頁查詢講的很簡單,提到了mybatis 的分頁插件影響性能,不如自己進(jìn)行分頁封裝,遺憾老師沒有講解一個自定義分頁實例。
3.P22:老師寫的 sql 語句很有問題,出現(xiàn)了兩個 id 列,導(dǎo)致了在 ResultMap 配置時的一系列的問題,即使老師最后能夠查詢 user 的多條記錄,但每個 User 的id都是部門的id值,邏輯有問題。所以在sql語句中用別名對兩個 id 進(jìn)行區(qū)分,那么在 <Collection> 標(biāo)簽中使用 <id> 標(biāo)簽是沒有語法和邏輯問題的。
4.P30:在 PDF的50頁,有一張來自 MyBatis中文網(wǎng) 的截圖,截圖中有一段文字是 “而且返回的對象被認(rèn)為是只讀的,因此對它們進(jìn)行修改可能會在不同線程中的調(diào)用者產(chǎn)生沖突” ,這個 “因此” 兩字改成 “因為” 是不是會更加合適。
5.P30:需要注意幾點
1.數(shù)據(jù)是先緩存到 一級緩存 中的,直到 close() 關(guān)閉會話時才會將當(dāng)前 sqlSession 會話的一級緩存數(shù)據(jù)移交給 sqlSessionFactory 二級緩存。那換句話說就是,二級緩存數(shù)據(jù)是在一級緩存關(guān)閉后才有的。
2.當(dāng)開啟二級緩存后,緩存執(zhí)行順序是:二級緩存 --> 一級緩存 --> 數(shù)據(jù)庫。
6.P31:緩存框架 EHCache 了解即可,用的更多的是 redis。