java框架篇--MyBatis 使用了哪些設計模式?在源碼中是如何體現的?

MyBatis 的前身是 IBatis,IBatis 是由 Internet 和 Abatis 組合而成,其目的是想當做互聯網的籬笆牆,圍繞着數據庫提供持久化服務的一個框架,2010 年正式改名爲 MyBatis。它是一款優秀的持久層框架,支持自定義 SQL、存儲過程及高級映射。MyBatis 免除了幾乎所有的 JDBC 代碼以及設置參數和獲取結果集的工作,還可以通過簡單的 XML 或註解來配置和映射原始類型、接口和 Java POJO(Plain Ordinary Java Object,普通 Java 對象)爲數據庫中的記錄。

關於 MyBatis 的介紹與使用,官方已經提供了比較詳盡的中文參考文檔,可點擊這裏查看,而本課時則以面試的角度出發,聊一聊不一樣的知識點,它也是 MyBatis 比較熱門的面試題之一,MyBatis 使用了哪些設計模式?在源碼中是如何體現的?

    注意:本課時使用的 MyBatis 源碼爲 3.5.5。

典型回答

1.工廠模式

工廠模式想必都比較熟悉,它是 Java 中最常用的設計模式之一。工廠模式就是提供一個工廠類,當有客戶端需要調用的時候,只調用這個工廠類就可以得到自己想要的結果,從而無需關注某類的具體實現過程。這就好比你去餐館喫飯,可以直接點菜,而不用考慮廚師是怎麼做的。

工廠模式在 MyBatis 中的典型代表是 SqlSessionFactory。

SqlSession 是 MyBatis 中的重要 Java 接口,可以通過該接口來執行 SQL 命令、獲取映射器示例和管理事務,而 SqlSessionFactory 正是用來產生 SqlSession 對象的,所以它在 MyBatis 中是比較核心的接口之一。

工廠模式應用解析:SqlSessionFactory 是一個接口類,它的子類 DefaultSqlSessionFactorys 有一個 openSession(ExecutorType execType) 的方法,其中使用了工廠模式,源碼如下:
private SqlSession openSes

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章