SqlSessionFactoryBuilder
對象,調用build(inputstream)方法讀取並解析配置文件mybatis-config.xml
,返回SqlSessionFactory
對象。SqlSessionFactory
建立SqlSession
對象,沒有手動設置的話事務默認開啓。SqlSession
實例得到Mapper對象
並運行Mapper
映射的SQL
語句,完成對數據庫的CRUD和事務
提交說明:SqlSession是單線程對象,由於它是非線程安全的,是持久化操做的獨享對象,相似jdbc中的Connection,底層就封裝了jdbc鏈接。
詳細流程以下:sql
mybatis
全局配置文件(數據源、mapper映射文件等),解析配置文件,MyBatis基於XML配置文件生成Configuration
,和一個個MappedStatement
(包括了參數映射配置、動態SQL語句、結果映射配置),其對應着<select | update | delete | insert>標籤項。SqlSessionFactoryBuilder
經過Configuration
對象生成SqlSessionFactory
,用來開啓SqlSession
。SqlSession
對象完成和數據庫的交互:Executor
(負責動態SQL的生成和查詢緩存的維護)將MappedStatement
對象進行解析,sql參數轉化、動態sql拼接,生成jdbc Statement對象