MyBatis運(yùn)行原理介紹:
SqlMapConfig.xml:
MyBatis的全局配置文件,配置了MyBatis的運(yùn)行環(huán)境等信息。
mapper.xml :sql映射文件,文件中配置了操作數(shù)據(jù)庫的sql語句。此文件需要在SqlMapConfig.xml中加載。
- 通過MyBatis環(huán)全局配置文件信息構(gòu)造SqlSessionFactory會話工廠
- 由會話工廠創(chuàng)建sqlSession即會話,操作數(shù)據(jù)庫需要通過sqlSession進(jìn)行。
- MyBatis底層自定義了Executor執(zhí)行器接口操作數(shù)據(jù)庫,Executor接口有兩個實現(xiàn),一個是基本執(zhí)行器、一個是緩存執(zhí)行器。
- Mapped Statement也是MyBatis一個底層封裝對象,它包裝了MyBatis配置信息及sql映射信息等。mapper.xml文件中一個sql對應(yīng)一個Mapped Statement對象,sql的id即是Mapped statement的id。
- Mapped Statement對sql執(zhí)行輸入?yún)?shù)進(jìn)行定義,包括HashMap、基本類型、pojo,Executor通過Mapped Statement在執(zhí)行sql前將輸入的java對象映射至sql中,輸入?yún)?shù)映射就是jdbc編程中對preparedStatement設(shè)置參數(shù)。
- Mapped Statement對sql執(zhí)行輸出結(jié)果進(jìn)行定義,包括HashMap、基本類型、pojo,Executor通過Mapped Statement在執(zhí)行sql后將輸出結(jié)果映射至java對象中,輸出結(jié)果映射過程相當(dāng)于jdbc編程中對結(jié)果的解析處理過程。