mybatis框架的架構(圖解)
1、 mybatis配置
SqlMapConfig.xml,此文件作為mybatis的全局配置文件,配置了mybatis的運行環境等信息。
mapper.xml文件即sql映射文件,文件中配置了操作數據庫的sql語句。此文件需要在SqlMapConfig.xml中加載。
SqlMapConfig.xml是mybatis的核心文件。mybatis將dao層與sql語句分離開來,雖然寫的時候分離開來了,但是執行的時候還是要依靠sql語句,所以我們的sql語句寫在Mapper.xml中。我們在加載核心的時候,會加載他下面的Mapper.xml,所以sql語句便會加載進去了。我們只需要在SqlMapConfig.xml中引入Mapper.xml就可以了,所以最後只需要加載SqlMapConfig.xml這一個核心配置文件。
2、 通過mybatis環境等配置信息構造SqlSessionFactory即會話工廠。工廠能幫我們去加載核心配置文件。加載了核心配置文件後就創建session,通過session可以對數據庫進行操作。
3、 由會話工廠創建sqlSession即會話,操作數據庫需要通過sqlSession進行。
4、 mybatis底層自定義了Executor執行器接口操作數據庫,Executor接口有兩個實現,一個是基本執行器、一個是緩存執行器。Executor是執行者,我們不需要管,因為mybatis已經為我們封裝好了。mybatis直接執行sql語句。
5、 Mapped Statement也是mybatis
6、 Mapped Statement對sql執行輸入參數進行定義,包括HashMap、基本類型、pojo,Executor通過Mapped Statement在執行sql前將輸入的java對象映射至sql中,輸入參數映射就是jdbc編程中對preparedStatement設置參數。
7、 Mapped Statement對sql執行輸出結果進行定義,包括HashMap、基本類型、pojo
8、Mapped Statement是輸入與輸出中間過程中產生的一些對象,通過這些對象去訪問數據庫。
總結:
工廠能幫我們去加載核心配置文件,同時創建會話,會話裏面有執行者,執行sql語句,在執行sql語句的過程中產生對象,通過Mapped Statement封裝成對象。執行sql語句就要需要輸入參數和輸出參數。
mybatis框架的架構(圖解)