在這篇博文中小編將給大家簡單介紹一下Mybatis的基本原理。
【什么是Mybatis】
Mybatis本是apache的一個開源項目iBatis,2010年這個項目由apache software foundation遷移到了google code,並且改名為MyBatis。
iBatis一詞來源於"internet"和"abatis"的組合,是一個基於java的持久層框架。iBatis提供的持久層框架包括SQLMaps和Data Access Objects(DAO)
【基本功能】
Mybatis是支持普通SQL查詢,存儲過程和高級映射的優秀持久層框架。MyBatis消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的檢索。Mybatis使用簡單的XML或注解用於配置和原始映射,將接口和java的POJOs映射成數據庫中的記錄。
每個MyBatis應用程序主要都是使用SqlSessionFactory實例的,一個SqlSessionFactory實例可以通過SqlSessionFactoryBuilder獲得。SqlSessionFactoryBuilder可以從一個xml配置文件或者一個預定義的配置類的實例獲得。
用xml文件構建sqlsessionfactory實例是非常簡單的事情。推薦在這個配置中使用類似路徑資源,但你可以使用任何Reader實例,包括用文件路徑或file://開頭的url創建實例。MyBatis有一個實用類——resources,它有很多方法,可以方便地從類路徑及其他位置加載資源。
【框架介紹】
1)基本框圖

2)原理詳解:
·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編程中對prepared Statement設置參數。
·Mapped Statement對sql執行輸出結果進行定義,包括Hashmap、基本類型、pojo、Executor通過Mapped Statement在執行sql后將輸出結果映射到java對象中,輸出結果映射過程相當於jdbc編程中對結果的解析處理過程。
【更多參考】
可參考http://www.mybatis.org/mybatis-3/zh/index.html,進行深入學習!
