天天看點

初識Mybatis(一)了解架構

Mybatis介紹

Mybatis原來是Apache組織的一個開源項目,名為iBatis,2010年由apache software fundation遷移到了Google code,命名為Mybatis.Mybatis是一個開源持久層架構.

Mybatis是一個輕量級的持久層架構,對DAO層進行了很好的封裝,特點是靈活,可擴充性強,安全性好,與其他優秀架構整合度比較好

Mybatis總體架構

初識Mybatis(一)了解架構

從圖中大緻可以看出,吧Mybatis分為7部分

1.Mybatis配置檔案:
  • SqlMapConfig.xml:Mybatis核心配置檔案:主要配置資料庫連接配接資訊,連接配接池資訊等(注意此配置檔案名稱不能修改,一般放在Src目錄下,最終會被加載到classes目錄下)
  • Mappern.xml:操作配置檔案,此檔案主要配置查詢參數,sql語句等資訊,對命名沒有嚴格規範,使用時候會被加載帶核心配置檔案中去.
2.SqlSessionFactory
  • 顧名思義是建立sqlSession的工廠,可以通過SqlSessionFactoryBulider獲得此對象的生命周期是Mybatis程式運作期間,是以此對象一般在應用中隻建立一次,可以将執行個體用靜态方法或者單利模式建立,和Hibernate的SessionFactory有點類似
3.sqlSession對象
  • sqlSession:是線程不安全的,運作在Mybatis中的每個請求線程應該都有自己的sqlSession,每次請求結束後,應該關閉此SqlSession,和Hibernate中session有點類似
4.Executor接口
  • 提供了一系列操作資料庫的方法,可以說SqlSession中嵌套着這個接口,擷取連接配接之後,具體幹什麼事兒就是此接口來調用或者實作
5.MappedStatement對象
  • 從圖中可以看出MappedStatement對象的左右兩邊還對應者兩個構件,我們将sql語句,要傳入的參數還有要傳回的類型傳入MappedStatement,從資料庫得到資料後,MappedStatement對象會根據傳回值,類型等需求,組裝好,然後傳回給輸出層

Mybatis的優點

  1. 易于上手和掌握。
  2. sql寫在xml裡,便于統一管理和優化。
  3. 解除sql與程式代碼的耦合。
  4. 提供映射标簽,支援對象與資料庫的orm字段關系映射
  5. 提供對象關系映射标簽,支援對象關系組建維護
  6. 提供xml标簽,支援編寫動态sql。

繼續閱讀