MyBatis的介紹及架構

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 編程中對結果的解析處理過程。