MyBatis的解析和執行原理

hipilee發表於2018-01-08

       MyBatis的執行分為兩部分,第一部分是讀取配置檔案快取到Configuration物件,用以建立SqlSessionFactory,第二部分是SqlSession的執行過程(反射技術和動態代理技術)。

      在DAO層的Mapper僅僅是一個介面,而不是一個包含邏輯的實現類。介面是無法例項化並且執行的,所以這就用到了動態代理結束,通過DEBUG的過程來檢視Mapper的具體細節。


       反射呼叫的最大好處是配置型大大提高,就如同Spring IOC容器一樣,我們可以給很多配置引數,使得Java應用程式能夠順利執行起來,大大提高了Java的靈活性和可配置性,降低模組之間的耦合。

       動態代理的方法主要有JDK動態代理(此種代理方式基於介面的代理,被代理類必須實現了介面);CGLIB動態代理(此種代理方式可以解決被代理類沒有實現介面)。


構建SqlSessionFactory過程

第一步:通過org.apache.ibatisbuilder.xml.XMLConfigBuilder解析配置的XML檔案,獨處配置引數,並將讀取的資料存入這個org.apache.ibatisbuilder.session.Configuration類中。

第二步:使用Configuration物件去建立SqlSessionFactory。


SqlSession執行過程

相關文章