1.1 Mybatis
介紹
MyBatis
本是apache
的一個開源項目iBatis, 2010
年這個項目由apache software foundation
遷移到了google code
,而且更名爲MyBatis
。2013
年11
月遷移到Github
。
MyBatis
是一個優秀的
持久層框架
,它對jdbc
的操做數據庫的過程進行封裝,使開發者只須要關注 SQL
自己,而不須要花費精力去處理例如註冊驅動、建立connection
、建立statement
、手動設置參數、結果集檢索等jdbc
繁雜的過程代碼。
Mybatis
經過xml
或註解的方式將要執行的各類statement
(statement
、preparedStatemnt
、CallableStatement
)配置起來,並經過java
對象和statement
中的sql
進行映射生成最終執行的sql
語句,最後由mybatis
框架執行sql
並將結果映射成java
對象並返回。
1.2 MyBatis架構
一、mybatis
配置
SqlMapConfig.xml
,此文件做爲mybatis
的全局配置文件,配置了mybatis
的運行環境等信息。
mapper.xml
文件即sql
映射文件,文件中配置了操做數據庫的sql
語句。此文件須要在SqlMapConfig.xml
中加載。
二、
經過mybatis
環境等配置信息構造SqlSessionFactory
即會話工廠
三、
由會話工廠建立sqlSession
即會話,操做數據庫須要經過sqlSession
進行。
四、mybatis
底層自定義了Executor
執行器接口操做數據庫,Executor
接口有兩個實現,一個是基本執行器、一個是緩存執行器。
五、Mapped Statement
也是mybatis
一個底層封裝對象,它包裝了mybatis
配置信息及sql
映射信息等。mapper.xml
文件中一個sql
對應一個Mapped Statement
對象,sql
的id
便是Mapped statement
的id
。
六、Mapped Statement
對sql
執行輸入參數進行定義,包括HashMap
、基本類型、pojo
,Executor
經過Mapped Statement
在執行sql
前將輸入的java
對象映射至sql
中,輸入參數映射就是jdbc
編程中對preparedStatement
設置參數。
七、Mapped Statement
對sql
執行輸出結果進行定義,包括HashMap
、基本類型、pojo
,Executor
經過Mapped Statement
在執行sql
後將輸出結果映射至java
對象中,輸出結果映射過程至關於jdbc
編程中對結果的解析處理過程。