日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

mybatis的工作原理

發布時間:2023/12/13 综合教程 29 生活家
生活随笔 收集整理的這篇文章主要介紹了 mybatis的工作原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


由以上圖可以看出,mybatis框架在操作數據庫時大致經過了8個步驟。對這8個步驟分析如下:

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工作的基本原理。

ORM映射框架常見的有兩種,即hibernate和mybatis,他們的區別如下:

hibernate:它是一個全表映射的框架。通常開發者只需要定義好持久化對象到數據庫表的映射關系就可以通過hibernate提供的方法完成持久層的操作了,開發者并不需要熟練的掌握sql語句的編寫,hibernate會根據指定的存儲邏輯,自動的生成對應的sql并調用JDBC接口來執行,所以hibernate的開發效率比mybatis稍高些。

但hibernate也有缺點,例如:它在多表關聯時對SQL查詢的支持較差、更新數據時要發送所有的字段、不支持存儲過程、不能通過優化SQL來優化性能等等。

這些問題導致hibernate只適合在場景不太復雜且對性能要求不高的項目中使用。

mybatis:它是一個半自動映射的框架。這里的所謂半自動是相對于hibernate的全表映射而言的,mybatis需要手動匹配提供POJO、SQL和映射關系,而hibernate只需提供POJO和映射關系即可。與hibernate相比,雖然使用mybatis需要手動編寫SQL,但是mybatis可以配置動態SQL并優化SQL,可以通過配置決定SQL的映射規則,它還支持存儲過程等優點。

因此mybatis常用于比較復雜和需要優化性能的項目,互聯網項目中通常都使用mybatis。

參考博文:(1) https://www.cnblogs.com/luoxn28/p/6417892.html
(2) https://blog.csdn.net/Song_JiangTao/article/details/80022214

總結

以上是生活随笔為你收集整理的mybatis的工作原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。