教育行業A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

MyBatis的執行原理詳細介紹

更新時間:2021年09月17日15時18分 來源:傳智教育 瀏覽次數:

為了使大家能夠更加清晰的理解MyBatis程序,在正式講解MyBatis入門案例之前,先來了解一下MyBatis程序的工作原理,如圖1所示。

MyBatis的工作原理

圖1 MyBatis框架執行流程圖

從圖1可以看出,MyBatis框架在操作數據庫時,大體經過了8個步驟。下面就對圖1中的每一步流程進行詳細講解,具體如下。


(1)讀取MyBatis配置文件mybatis-config.xml。mybatis-config.xml作為MyBatis的全局配置文件,配置了MyBatis的運行環境等信息,其中主要內容是獲取數據庫連接。


(2)加載映射文件Mapper.xml。Mapper.xml文件即SQL映射文件,該文件中配置了操作數據庫的SQL語句,需要在mybatis-config.xml中加載才能執行。mybatis-config.xml可以加載多個配置文件,每個配置文件對應數據庫中的一張表。


(3)構建會話工廠。通過MyBatis的環境等配置信息構建會話工廠SqlSessionFactory。


(4)創建SqlSession對象。由會話工廠創建SqlSession對象,該對象中包含了執行SQL的所有方法。


(5)MyBatis底層定義了一個Executor接口來操作數據庫,它會根據SqlSession傳遞的參數動態的生成需要執行的SQL語句,同時負責查詢緩存的維護。


(6)在Executor接口的執行方法中,包含一個MappedStatement類型的參數,該參數是對映射信息的封裝,用來存儲要映射的SQL語句的id、參數等。Mapper.xml文件中一個SQL對應一個MappedStatement對象,SQL的id即是MappedStatement的id。


(7)輸入參數映射。在執行方法時,MappedStatement對象會對用戶執行SQL語句的輸入參數進行定義(可以定義為Map、List類型、基本類型和POJO類型),Executor執行器會通過MappedStatement對象在執行SQL前,將輸入的Java對象映射到SQL語句中。這里對輸入參數的映射過程就類似于JDBC編程中對preparedStatement對象設置參數的過程。


(8)輸出結果映射。在數據庫中執行完SQL語句后,MappedStatement對象會對SQL執行輸出的結果進行定義(可以定義為Map和List類型、基本類型、POJO類型),Executor執行器會通過MappedStatement對象在執行SQL語句后,將輸出結果映射至Java對象中。這種將輸出結果映射到Java對象的過程就類似于JDBC編程中對結果的解析處理過程。

通過上面對MyBatis框架執行流程的講解,相信讀者對MyBatis框架已經有了一個初步的了解。對于初學者來說,上面所講解的內容可能不會完全理解,現階段也不要求讀者能完全理解,這里講解MyBatis框架的執行過程是為了方便后面程序的學習。在學習完MyBatis框架后,讀者自然就會明白上面所講解的內容了。

好口碑IT培訓



猜你喜歡:

什么是Mybatis?Mybaits有哪些優點?

MyBatis怎樣處理一對一關聯關系?分步驟介紹

什么是Mybatis?Mybaits有哪些優點?

Mybatis原理介紹:MyBatis如何操作數據庫?

Mybatis中的#{}和${}的區別是什么?

傳智教育Java開發課程

女生宿舍,欧美人与zooz,日本漫画之口工番h,国产不卡无码视频在线观看 网站地图 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>