這個是一個大致的流程圖
詳細的流程為:
1.加載全局配置文件(MybatisConfig.xml),這個配置文件中通常是別名設置,攔截器的設置,(當ssm整合后,環境配置與mapper映射文件的注冊會轉移到spring配置文件中)
2.xml全局配置文件會產生一個構建者類,叫做xmlconfigBuilder,這個類是用來通過xml配置文件來構建Configuration對象實例的,構建的過程就是解析(MybatisConfig.xml)配置文件調用parse產生configuration對象
3.隨后產生的就是Mybatis的配置類(Configuration),這個類可以作為項目的全局配置對象
4.接下來便是SqlSessionFactory(會話工廠)的構建者類,(SqlSessionFactoryBuilder),configuration配置對象,就可以調用會話工廠構建者類中的build方法完成對會話工廠對象的構建.
5.產生SqlSessionFactory(會話工廠),是用來生成會話的接口,有一個實現類(DefaultSqlSessionFactory)這個實現類是真正的會話的工廠類,並且它是單例的.會一直存在到服務器關閉.
6.通過調用會話工廠的實現類中(DefaultSqlSessionFactory)的openSession()方法完成SqlSession對象的創建.
7.產生sqlsession,該接口是會話,並且是非線程安全的.每一次對數據庫的訪問都需要創建一個sqlsession,當得到結果后sqlsession就會被廢棄,所以聲明周期短.
8.當然這當中還有一個Excutor執行器接口,這才是內部真正對數據庫進行操作的操作者,他才是真正的干事的.
9.另外就是StatementHandler該類是Statment處理器,封裝了對數據庫各種操作方法,使用時候,就調用其中的一些方法.
10.最后就是結果集處理器(ResultSetHandler),這個處理器的作用就是對結果進行處理並返回的.