Mybatis介紹
Mybatis原來是Apache組織的一個開源項目,名為iBatis,2010年由apache software fundation遷移到了Google code,命名為Mybatis.Mybatis是一個開源持久層架構.
Mybatis是一個輕量級的持久層架構,對DAO層進行了很好的封裝,特點是靈活,可擴充性強,安全性好,與其他優秀架構整合度比較好
Mybatis總體架構
從圖中大緻可以看出,吧Mybatis分為7部分
1.Mybatis配置檔案:- SqlMapConfig.xml:Mybatis核心配置檔案:主要配置資料庫連接配接資訊,連接配接池資訊等(注意此配置檔案名稱不能修改,一般放在Src目錄下,最終會被加載到classes目錄下)
- Mappern.xml:操作配置檔案,此檔案主要配置查詢參數,sql語句等資訊,對命名沒有嚴格規範,使用時候會被加載帶核心配置檔案中去.
- 顧名思義是建立sqlSession的工廠,可以通過SqlSessionFactoryBulider獲得此對象的生命周期是Mybatis程式運作期間,是以此對象一般在應用中隻建立一次,可以将執行個體用靜态方法或者單利模式建立,和Hibernate的SessionFactory有點類似
- sqlSession:是線程不安全的,運作在Mybatis中的每個請求線程應該都有自己的sqlSession,每次請求結束後,應該關閉此SqlSession,和Hibernate中session有點類似
- 提供了一系列操作資料庫的方法,可以說SqlSession中嵌套着這個接口,擷取連接配接之後,具體幹什麼事兒就是此接口來調用或者實作
- 從圖中可以看出MappedStatement對象的左右兩邊還對應者兩個構件,我們将sql語句,要傳入的參數還有要傳回的類型傳入MappedStatement,從資料庫得到資料後,MappedStatement對象會根據傳回值,類型等需求,組裝好,然後傳回給輸出層
Mybatis的優點
- 易于上手和掌握。
- sql寫在xml裡,便于統一管理和優化。
- 解除sql與程式代碼的耦合。
- 提供映射标簽,支援對象與資料庫的orm字段關系映射
- 提供對象關系映射标簽,支援對象關系組建維護
- 提供xml标簽,支援編寫動态sql。