Mybatis架構(gòu)
1掺出、mybatis配置
SqlMapConfig.xml潮太,此文件作為mybatis的全局配置文件丛晦,配置了mybatis的運行環(huán)境等信息。
mapper.xml文件即sql映射文件署惯,文件中配置了操作數(shù)據(jù)庫的sql語句。此文件需要在SqlMapConfig.xml中加載镣隶。
2极谊、通過mybatis環(huán)境等配置信息構(gòu)造SqlSessionFactory即會話工廠
3、由會話工廠創(chuàng)建sqlSession即會話安岂,操作數(shù)據(jù)庫需要通過sqlSession進(jìn)行轻猖。
4、mybatis底層自定義了Executor執(zhí)行器接口操作數(shù)據(jù)庫域那,Executor接口有兩個實現(xiàn)咙边,一個是基本執(zhí)行器、一個是緩存執(zhí)行器次员。
5败许、Mapped Statement也是mybatis一個底層封裝對象,它包裝了mybatis配置信息及sql映射信息等淑蔚。mapper.xml文件中一個sql對應(yīng)一個Mapped Statement對象市殷,sql的id即是Mapped statement的id。
6刹衫、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ù)。
7黄选、Mapped Statement對sql執(zhí)行輸出結(jié)果進(jìn)行定義蝇摸,包括HashMap、基本類型办陷、pojo貌夕,Executor通過Mapped Statement在執(zhí)行sql后將輸出結(jié)果映射至java對象中,輸出結(jié)果映射過程相當(dāng)于jdbc編程中對結(jié)果的解析處理過程民镜。