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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MyBatis的架构和其运行流程

發布時間:2025/3/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MyBatis的架构和其运行流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0x00:MyBatis 架構組成

MyBatis 整體的架構組成為:數據源配置文件、SQL 映射配置文件、會話工廠、會話、執行器以及底層封裝對象組成。

0x01:數據源配置文件

對于持久層框架,連接數據庫是最重要的一步。MyBatis 框架對于數據庫連接的配置信息采用了數據庫連接池的形式。數據庫連接池負責分配、管理、和釋放數據庫連接,其只使用一個連接,提高了操作性能。不像 JDBC,每次對數據庫操作,都需要連接然后釋放,這也是 MyBatis 相對 JDBC 其中的一個優點。
程序本身就不用再關心數據庫的配置信息,交給 MyBatis 配置文件管理即可。文件名為 SqlMapConfig.xml。其中配置了數據庫驅動、數據庫連接地址、數據庫用戶名和密碼、事務管理等參數。例如以下示例:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><environments default="development"><environment id="development"><!-- 使用JDBC事務管理 --><transactionManager type="JDBC"/><!-- 數據庫連接池 --><dataSource type="POOLED"><property name="driver" value="org.git.mm.mysql.Driver"/><property name="url" value="jdbc:mysql://localhost:3306"/test?characterEncoding=utf-8"/><property name="username" value="root"/><property name="password" value="root"/></dataSource></environment></environments> </configuration>

連接池中的 org.git.mm.mysql.Driver 是 com.mysql.jdbc.Driver 的之類,也是 Mysql 數據庫的連接驅動,如果項目中有整合 SpringMVC 框架時,則連接池可配在 SpringMVC 的配置文件中。

0x02:SQL 映射配置文件

在 JDBC 中,sql 語句一般會寫在 java 文件中,而 MyBatis 會將這些 sql 語句單獨放在配置文件中 Mapper.xml。
作用流程:MyBatis 會根據配置文件中的參數配置,將組裝了參數的 Java 對象或 Map 對象中的相關字段與 Mapper.xml 中的參數配置做匹配,將相關參數綁定到需要執行的 sql 語句上。其 Mapper.xml 配置文件,完成了對 sql 語句的映射配置。例如以下示例:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="test"><select id="id" parameterType="int" resultType="cn.com.mybatis.model.User">SELECT * FROM USER WHERE id=#{id}</select> </mapper>

其中,id 是 sql 語句要綁定的字段名,parameterType 是綁定字段的類型,resultType 是把結果映射為一個 Java 對象。
Mapper.xml 文件一般配置在 SqlMapConfig.xml 中,示例代碼如下:

<mappers><mapper resource="Mapper.xml"/> </mappers>

0x03:會話工廠與會話

當數據庫連接池配置文件 SqlMapConfig.xml 和 sql 映射配置文件 Mapper.xml 都準備好后,就需要相關的程序來讀取并加載這些配置文件的信息,MyBatis 用來處理這些配置文件的核心對象就是會話工廠與會話。
MyBatis 中,會話工廠是 SqlSessionFactory 類。SqlSessionFactory 會根據數據庫配置信息產生可以連接數據庫并與其交互的 SqlSession 會話實例類。而 SqlSession 實例類,便會依照 Mapper 配置文件中的 sql 配置,對數據庫執行增刪改查的操作。

0x04:執行器和底層封裝對象

SqlSession 類內部是通過執行器 Executor 對數據庫進行操作的,執行器 Executor 與數據庫交互,依靠的是底層封裝對象 Mappered Statement,這個底層對象 Mappered Statement 封裝了從 Mapper 文件讀取信息的功能,讀取的內容包括 sql 語句、輸入參數、輸出結果類型等。

0x05:MyBatis 運行流程

MyBatis 的運行流程其實就是其架構的處理流程,總結下如下:
首先,SqlSessionFactory 會話工廠會加載 SqlMapConfig.xml 配置文件信息,然后生成一個可以與數據庫交互的會話實例類 SqlSession,會話實例類 SqlSession 會根據 Mapper 配置文件中的 sql 配置,去執行相應的增刪改查操作。這樣,MyBatis 就實現了與數據庫的交互功能。

MyBatis 運行流程結構圖如下:

當了解了 MyBatis 運行流程后,會更好更容易的去學習這個框架。

總結

以上是生活随笔為你收集整理的MyBatis的架构和其运行流程的全部內容,希望文章能夠幫你解決所遇到的問題。

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