前言
在SpringBoot
開發中,之前已經講過了數據持久層框架,包括Jdbc
,Jpa
等。Jdbc
已經逐漸淡出開發舞臺,JPA
統治了一段時間,但是後來出現了更爲優秀的數據持久層框架——MyBatis
.那麼久讓我們來了解下MyBatis
相關知識吧。
今天涉及的知識有:
-
MyBatis
簡介 -
MyBatis
配置
一. MyBatis簡介
網上對於MyBatis
的解釋很多,也很繁瑣。這裏我就不展開講了。簡單來說,MyBatis
是一個優秀的數據持久層框架。做的事就是實現SQL
和POJO
的相互轉化。
二. MyBatis 配置
MyBatis
的配置主要分爲兩部分: 基礎配置文件
和 映射文件
。 在MyBatis
中可以使用註解來實現映射,由於功能和可讀性限制,一般不採用註解配置SQL
的方式。
MyBatis
基於SqlSessionFactory
構建的框架,其生命週期中只存在一個SqlSessionFactory
對象,並且往往會使用單例模式。構建SqlSessionFactory
是通過配置類來完成的。
MyBatis
的配置涉及到以下方面:
- properties(屬性):屬性文件一般採用
Spring
進行配置,而不是MyBatis
- settings(設置):此配置將改變
MyBatis
底層行爲,可配置映射規則,如自動映射或駝峯映射,執行器(Executor
)類型,緩存內容等 - typeAliases(類型別名): 因爲使用類全限定名會比較長,所以
MyBatis
會對常用類提供默認別名,此外還允許我們通過typeAliases
設置自定義別名 - typeHandlers(類型處理器):主要用於處理
sql
與pojo
的數據類型轉換,MyBatis
已內置很多自定義的typeHandler
。一般來說,typeHandler
的使用集中在枚舉類型上。 - objectFactory(對象工廠):
MyBatis
返回生成POJO
是時調用的工廠類,一般我們使用MyBatis
默認提供的工廠類DefaultObjectFactory
- plugins(插件): 有時也稱攔截器,通過動態代理和責任鏈模式完成,可以修改
MyBatis
底層的實現功能 - environments(數據庫環境):可配置數據庫連接內容和事務,一般交由
Spring
託管 - databaseIdProvider(數據庫廠商標識): 允許
MyBatis
配置多種類型數據庫,不常用 - mappers(映射器):
MyBatis
最核心組件,提供sql
與pojo
映射關係。
ok,今天關於MyBatis
的簡單介紹就到這裏了,謝謝大家。