框架設計
1,介面層:和資料庫互動
1.1傳統的mybatis提供的api,通過sqlsession物件完成與資料庫的互動,
首先,介面檔案的全類名和xml檔案的全類名是完全一樣的,然後在xml檔案中,表明命名空間namespace的值就是介面的全類名,然後每個查詢語句中的id就是介面中對應的方法名,然後配置檔案中的每乙個引數型別就是介面檔案中方法的引數,配置檔案的resultmap就是對應了介面檔案中的返回型別
2,mybatis層次結構
3,事務管理機制:mybatis將事務抽象為transaction介面,有兩種,我們用jdbc,
3.1,配置
在xml配置檔案中定義,在標籤中定義的
3.2建立
事務的建立是交給transactionfactory事務工廠來建立的,當我們配置完畢後,mybatis初始化解析節點標籤時,會自動建立乙個jdbctransactionfactory
其實在例項化的時候,針對不同的配置檔案,都會生成不同的物件 ,然後彼此之間層層巢狀
3.3,事務工廠定義了兩種建立事務的辦法,一是通過connection物件建立transaction,二是通過datasource來建立transaction,
關聯查詢問題
可能需要多次查詢來組裝物件來組裝返回物件,所以mybatis提供了一種巢狀查詢語句,可以簡化上述操作
假設巢狀查詢就乙個(即resultmap 內部就乙個association標籤),現查詢的結果集返回條數為n,那麼關聯查詢語句將會被執行n次,加上自身返回結果集查詢1次,共需要訪問資料庫n+1次。如果n比較大的話,這樣的資料庫訪問消耗是非常大的!所以使用這種巢狀語句查詢的使用者一定要考慮慎重考慮,確保n值不會很大。
架構設計例項
原理與架構 高可用性系統在大眾點評的實踐與經驗 大型 架構系列 電商 架構案例 微博平台穩定性體系介紹 攜程docker架構 攜程基於storm的實時大資料平台實踐 從技術細節看美團的架構 12306 核心模型設計思路和架構設計 airbnb 的大資料架構 經典大資料架構案例 酷狗 的大資料平台重構...
架構設計和概要設計
初步再來 下架構設計和概要設計的區別和邊界問題。先談下架構設計 架構設計包括了功能性架構和技術架構設計兩個部分的內容,功能性架構解決業務流程和功能問題,而技術架構解決非功能性需求等問題。兩種架構都包括了動態和靜態兩個方面的內容,對於功能性架構中動態部分為業務流程驅動全域性用例,用例驅動的用例實現等 ...
架構設計和概要設計
初步再來 下架構設計和概要設計的區別和邊界問題。先談下架構設計 架構設計包括了功能性架構和技術架構設計兩個部分的內容,功能性架構解決業務流程和功能問題,而技術架構解決非功能性需求等問題。兩種架構都包括了動態和靜態兩個方面的內容,對於功能性架構中動態部分為業務流程驅動全域性用例,用例驅動的用例實現等 ...