06.26 MyBatis 配置 environments 詳解

MyBatis 配置 environments 詳解

0x00:前言參考

之前的 記了一下 MyBatis 中的核心配置文件各個標籤的作用和使用場景,這篇文章細說一下配置文件中 environments 標籤的詳細使用。

0x01:標籤介紹

在 MyBatis 中,environments 是放有關數據庫連接數據的配置信息的,其中可以配置多個數據庫的連接環境,方便 sql 語句可以適用於多個數據庫環境。

在 environments 中可以配置一個個單獨的 environment,它們代表多個數據庫環境的配置信息。每一個 environment 都包含了事務管理器 transactionManager 和數據源 DataSource 信息。

0x02:代碼示例

以下是一個完整的 environments 的配置,代碼示例如下:

<environments> /<environments>

<environment> /<environment>

<transactionmanager>

<datasource> /<datasource>

<property>

<property>

<property>

<property>

<environments> /<environments>

<environment> /<environment>

<transactionmanager>

<datasource> /<datasource>

其中的事務管理器也就是 transactionManager 標籤有兩種類型,一個是 JDBC,一個是 MANAGET。配置 JDBC 代表直接使用 JDBC 的提交和回滾設置。配置 MANAGED 則不提交和回滾連接,而是中容器來管理事務的生命週期。默認情況下,MANAGED 會關閉連接,但是可以動態指定 closeConnection 參數,當設置為 false 時,在 MANAGED 類型下就不會自動關閉連接。配置如下:

<transactionmanager>

<property>

數據源 DataSource 有三種數據源類型:UNPOOLED,POOLED,JNDI。其中 UNPOOLED 是設置每次請求時都打開和關閉連接。POOLED 是設置一個管理數據庫連接的資源池,用來控制數據庫的連接與關閉次數,利用池的概念將 JDBC 連接對象組織起來。而 JNDI 是配置連接外部數據源的信息,例如服務器提供的數據源。

DataSource 中是配置 JDBC 連接數據庫說需要的各項參數信息的,詳細內容見下表:

MyBatis 配置 environments 詳解

0x03:知識拓展

MyBatis 支持配置多個數據庫連接環境,在多個數據庫中執行 sql 語句時,某些規則是不一樣的,如果要兼容各個數據庫廠商的 sql 語言規則,則需要配置 databaseIdProvider 參數。在 MyBatis 全局配置文件中添加如下配置即可:

<databaseidprovider>

<property>

<property>

這個用到的不多,瞭解一下。

0x04:總結

在 MyBatis 中使用 environments 來配置數據庫的連接信息,其中包括了事務管理器 transactionManager 和數據源 dataSource。當 sql 要支持多個廠商的規則需求時,可以通過 databaseIdProvider 配置來實現。


分享到:


相關文章: