《MyBatis從入門到精通》讀書筆記

2021-08-19 14:15:54 字數 712 閱讀 9886

書只有300頁,2天就快看完了。第二遍看,還是會發現一些之前沒有注意到的點,總結一下。

1.之前只知道spring aop中用到了動態**,實際上mybatis中也有用到。

當呼叫乙個介面的方法時,會先通過介面的全限定名稱和當前呼叫的方法名的組合得到乙個方法 id,這個 id 的值就是對映 xml 中namespace 和具體方法 id 的組合。

所以可以在**方法中使用 sqlsession 以命名空間的方式呼叫方法。通過這種方式可以將介面和 xml 檔案中的方法關聯起來。這種**方式和常規**的不同之處在於,

這裡沒有對某個具體類進行**,而是通過**轉化成了對其他**的呼叫。

2.處理n+1問題

這個好像之前參加校招的時候有被問到過。

比如有個系統,他有乙個許可權控制機制。每個使用者有n個角色,角色有對應的許可權。如果我們寫的是巢狀查詢,也就是查詢出使用者之後,會執行n次查詢,查詢這個使用者所有的角色資訊。在這個例子中 ,是否一定會用到角色呢?如果查詢出來並沒有使用,那不就白白浪費了一次查詢嗎?

這就就會出現 n+1 問題 ,主 sql 會 查詢一次,查詢出 n 條結果,這 n 條結果 要各自執行一次查詢,那就需要進行 n 次查詢。

可以使用mybatis中的延遲載入解決這個問題。

配置fetchtype,aggressivelazyloading。只有當呼叫 getrole ()方法獲取 role 的時候, mybatis 才會執行巢狀查詢去獲取資料。

Nginx從入門到精通讀書筆記3

nginx 資料結構 ngx str t 不以 0結束字元,而是用長度標記,可以重複引用一段字串記憶體。操作函式簇 格式化 v ngx pool t 幫助管理資源 記憶體,檔案等 對資源的使用和釋放統一進行。ngx array t nginx的陣列結構在儲存上跟c內建的陣列有相似性,比如都是一大塊連...

《html5 從入門到精通》讀書筆記(三)

標籤 描述 4 5 定義表單。4 5 to 定義標題1到標題6。45 定義關於文件的資訊,45 定義section或page的頁首。5定義有關文件中的section的資訊。5定義水平線。45 定義html文件。45 定義斜體文字。45 定義行內的子視窗 框架 45 定義影象 45 定義輸入域。45 ...

《html5 從入門到精通》讀書筆記(二)

接著上面繼續記錄筆記,這次要記的知識點比較多。記錄下我認為比較重要的東西。1.autocomplete屬性 該屬性規定form或input域應該擁有自動完成功能。form id user form action method get autocomplete on e mail input type...