1. 程式人生 > >MyBatis xml配置檔案詳解

MyBatis xml配置檔案詳解

一、MyBatis 配置檔案基本結構

       在使用mybatis框架時,首先匯入其對應的jar包,並進行相應的配置,所以得對配置檔案的每個引數都得了解。一個完全的mybatis配置檔案結構如下:

  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <!DOCTYPE configuration  
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <!-- 配置檔案的根元素 -->
  6. <
    configuration>
  7.     <!-- 屬性:定義配置外在化 -->
  8.     <properties></properties>
  9.     <!-- 設定:定義mybatis的一些全域性性設定 -->
  10.     <settings>
  11.        <!-- 具體的引數名和引數值 -->
  12.        <settingname=""value=""/>
  13.     </settings>
  14.     <!-- 型別名稱:為一些類定義別名 -->
  15.     <typeAliases
    ></typeAliases>
  16.     <!-- 型別處理器:定義Java型別與資料庫中的資料型別之間的轉換關係 -->
  17.     <typeHandlers></typeHandlers>
  18.     <!-- 物件工廠 -->
  19.     <objectFactorytype=""></objectFactory>
  20.     <!-- 外掛:mybatis的外掛,外掛可以修改mybatis的內部執行規則 -->
  21.     <plugins>
  22.        <plugininterceptor
    =""></plugin>
  23.     </plugins>
  24.     <!-- 環境:配置mybatis的環境 -->
  25.     <environmentsdefault="">
  26.        <!-- 環境變數:可以配置多個環境變數,比如使用多資料來源時,就需要配置多個環境變數 -->
  27.        <environmentid="">
  28.           <!-- 事務管理器 -->
  29.           <transactionManagertype=""></transactionManager>
  30.           <!-- 資料來源 -->
  31.           <dataSourcetype=""></dataSource>
  32.        </environment>
  33.     </environments>
  34.     <!-- 資料庫廠商標識 -->
  35.     <databaseIdProvidertype=""></databaseIdProvider>
  36.     <!-- 對映器:指定對映檔案或者對映類 -->
  37.     <mappers></mappers>
  38. </configuration>

properties

properties元素主要是用來定義配置外在化,比如資料庫的連線屬性等。這些屬性都是可外部配置且可動態替換的,既可以在典型的Java屬性檔案中配置,亦可以通過properties元素的子元素來傳遞。例如:

  1. <propertiesresource="org/mybatis/example/config.properties">
  2.   <propertyname="username"value="dev_user"/>
  3.   <propertyname="password"value="F2Fa3!33TYyg"/>
  4. </properties>
其中的屬性就可以在整個配置檔案中使用來替換需要動態配置的屬性值。比如在資料來源中使用的例子:
  1. <dataSourcetype="POOLED">
  2.   <propertyname="driver"value="${driver}"/>
  3.   <propertyname="url"value="${url}"/>
  4.   <propertyname="username"value="${username}"/>
  5.   <propertyname="password"value="${password}"/>
  6. </dataSource>
這個例子中的username和password將會由properties元素中設定的相應值來替換。driver和url屬性將會由config.properties檔案中對應的值來替換。這樣就為配置提供了諸多靈活選擇。屬性也可以被傳遞到SqlSessionBuilder.build()方法中。例如:
  1. SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader, props);  
  2. // ... or ...  
  3. SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader, environment, props);  
但是,這也就涉及到了優先順序的問題,如果屬性不只在一個地方配置,那麼mybatis將會按照下面的順序來載入:
  • 在properties元素體內指定的屬性首先被讀取。
  • 然後根據properties元素中的resource屬性讀取類路徑下屬性檔案或根據url屬性指定的路徑讀取屬性檔案,並覆蓋已讀取的同名屬性。
  • 最後讀取作為方法引數傳遞的屬性,並覆蓋已讀取的同名屬性。
因此,通過方法引數傳遞的屬性具有最高優先順序,resource/url屬性中指定的配置檔案次之,最低優先順序的是properties屬性中指定的屬性。

 settings

setting是指定MyBatis的一些全域性配置屬性,這是MyBatis中極為重要的調整設定,它們會改變MyBatis的執行時行為,所以我們需要清楚的知道這些屬性的作用及預設值。

設定引數 描述 有效值 預設值
cacheEnabled 該配置影響的所有對映器中配置的快取的全域性開關 true | false true
lazyLoadingEnabled 延遲載入的全域性開關。當開啟時,所有關聯物件都會延遲載入。 特定關聯關係中可通過設定fetchType屬性來覆蓋該項的開關狀態 true | false false
aggressiveLazyLoading 當啟用時,對任意延遲屬性的呼叫會使帶有延遲載入屬性的物件完整載入;反之,每種屬性將會按需載入。 true | false true
multipleResultSetsEnabled 是否允許單一語句返回多結果集(需要相容驅動)。 true | false true
useColumnLabel 使用列標籤代替列名。不同的驅動在這方面會有不同的表現, 具體可參考相關驅動文件或通過測試這兩種不同的模式來觀察所用驅動的結果。 true | false true
useGeneratedKeys 允許 JDBC 支援自動生成主鍵,需要驅動相容。 如果設定為 true 則這個設定強制使用自動生成主鍵,儘管一些驅動不能相容但仍可正常工作(比如 Derby)。 true | false False
autoMappingBehavior 指定 MyBatis 應如何自動對映列到欄位或屬性。 NONE 表示取消自動對映;PARTIAL 只會自動對映沒有定義巢狀結果集對映的結果集。 FULL 會自動對映任意複雜的結果集(無論是否巢狀)。 NONE, PARTIAL, FULL PARTIAL
defaultExecutorType 配置預設的執行器。SIMPLE 就是普通的執行器;REUSE 執行器會重用預處理語句(prepared statements); BATCH 執行器將重用語句並執行批量更新。 SIMPLE REUSE BATCH SIMPLE
defaultStatementTimeout 設定超時時間,它決定驅動等待資料庫響應的秒數。 Any positive integer Not Set (null)
defaultFetchSize Sets the driver a hint as to control fetching size for return results. This parameter value can be override by a query setting. Any positive integer Not Set (null)
safeRowBoundsEnabled 允許在巢狀語句中使用分頁(RowBounds)。 true | false False
mapUnderscoreToCamelCase 是否開啟自動駝峰命名規則(camel case)對映,即從經典資料庫列名 A_COLUMN 到經典 Java 屬性名 aColumn 的類似對映。 true | false False
localCacheScope MyBatis 利用本地快取機制(Local Cache)防止迴圈引用(circular references)和加速重複巢狀查詢。 預設值為 SESSION,這種情況下會快取一個會話中執行的所有查詢。 若設定值為 STATEMENT,本地會話僅用在語句執行上,對相同 SqlSession 的不同調用將不會共享資料。 SESSION | STATEMENT SESSION
jdbcTypeForNull 當沒有為引數提供特定的 JDBC 型別時,為空值指定 JDBC 型別。 某些驅動需要指定列的 JDBC 型別,多數情況直接用一般型別即可,比如 NULL、VARCHAR 或 OTHER。 JdbcType enumeration. Most common are: NULL, VARCHAR and OTHER OTHER
lazyLoadTriggerMethods 指定哪個物件的方法觸發一次延遲載入。 A method name list separated by commas equals,clone,hashCode,toString
defaultScriptingLanguage 指定動態 SQL 生成的預設語言。 A type alias or fully qualified class name. org.apache.ibatis.scripting.xmltags.XMLDynamicLanguageDriver
callSettersOnNulls 指定當結果集中值為 null 的時候是否呼叫對映物件的 setter(map 物件時為 put)方法,這對於有 Map.keySet() 依賴或 null 值初始化的時候是有用的。注意基本型別(int、boolean等)是不能設定成 null 的。 true | false false
logPrefix 指定 MyBatis 增加到日誌名稱的字首。 Any String Not set
logImpl 指定 MyBatis 所用日誌的具體實現,未指定時將自動查詢。 SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING Not set
proxyFactory 指定 Mybatis 建立具有延遲載入能力的物件所用到的代理工具。 CGLIB | JAVASSIST JAVASSIST (MyBatis 3.3 or above)

一個完整的settings元素示例如下:

  1. <settings>
  2.   <settingname="cacheEnabled"value="true"/>
  3. 相關推薦

    MyBatis xml配置檔案

    一、MyBatis 配置檔案基本結構        在使用mybatis框架時,首先匯入其對應的jar包,並進行相應的配置,所以得對配置檔案的每個引數都得了解。一個完全的mybatis配置檔案結構如下: <?xmlversion="1.0

    MyBatis Generator】程式碼自動生成工具 generatorConfig.xml配置檔案

    MyBatis Generator官網地址:http://www.mybatis.org/generator/index.html MyBaris Generator中文地址:http://mbg.cndocs.ml/ 在MBG中,最主要也最重要的,就是generatorConfig.xml

    轉:ssm spring+springmvc+mybatis中的xml配置檔案

    這幾天一直在整合SSM框架,雖然網上有很多已經整合好的,但是對於裡面的配置檔案並沒有進行過多的說明,很多人知其然不知其所以然,經過幾天的搜尋和整理,今天總算對其中的XML配置檔案有了一定的瞭解,所以拿出來一起分享一下,希望有不足的地方大家批評指正~~~ 首先   這篇文章暫時只對框架中所要用到的配

    ssm spring+springmvc+mybatis中的xml配置檔案

    這幾天一直在整合SSM框架,雖然網上有很多已經整合好的,但是對於裡面的配置檔案並沒有進行過多的說明,很多人知其然不知其所以然,經過幾天的搜尋和整理,今天總算對其中的XML配置檔案有了一定的瞭解,所以拿出來一起分享一下,希望有不足的地方大家批評指正~~~ 首先   這篇文章暫時只對框架中所要用到的

    MyBatis 3的XML配置檔案

    Mybatis-config.xml的配置檔案:<?xml version="1.0" encoding="UTF-8" ?> <!--DOCTYPE標籤是一種標準通用標記語言的文件型別宣告,它的目的是要告訴標準通用標記語言解析器,它應該使用什麼樣的文件型別

    Maven的pom.xml配置檔案

    轉自: Maven的pom.xml配置檔案詳解  <!--父專案的座標。如果專案中沒有規定某個元素的值,那麼父專案中的對應值即為專案的預設值。 座標包括group ID,artifact ID和 version。-->  &

    Maven之pom.xml與setting.xml配置檔案

    一.pom.xml詳解     1.概述     pom中節點如下分佈 <project xmlns="http://maven.apache.org/

    maven的settings.xml配置檔案

    一、Settings.xml基本資訊 Settings.xml是maven全域性引數的配置檔案,其中包含本地倉儲位置、遠端倉儲伺服器、認證資訊等等。 settings.xml檔案一般存在於兩個位置: 全域性配置(global settings): maven安裝目錄/conf/settings

    struts2中struts.xml配置檔案

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://st

    Maven之setting.xml配置檔案

    setting.xml配置檔案 maven的配置檔案settings.xml存在於兩個地方: 1.安裝的地方:${M2_HOME}/conf/settings.xml 2.使用者的目錄:${user.home}/.m2/settings.xml 前者又被叫做全域性配置,對作

    Tomcat學習筆記【3】--- Server.xml配置檔案

    本文主要講如何配置Tomcat伺服器。 首先展示一個BS結構圖: 1 server 一個server就表示一個Tomcat例項。 1)port 指定一個埠,這個埠負責監聽關閉tomcat的請求; 2)shutdown 指定向埠傳送的命令字串。 2 service 一個service就是處理請求的服務,裡邊包含

    MyBatismybatis-generator配置檔案

    MyBatis:mybatis-generator配置檔案詳解 mybatis-generator外掛的配置檔案詳解如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorC

    mybatis配置檔案

    mybatis主配置檔案 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

    Android之androidmainfest.xml配置檔案

    寫配置檔案的時候我們會不知道把那些配置項放在哪裡,請看: 配置檔案樣例: <?xml version="1.0" encoding="utf-8"?> <manifest> <!-- 基本配置 --> <uses-permission

    KVM 虛擬機器 XML 配置檔案

    我們使用 KVM 建立虛擬機器後,會在 /etc/libvirt/qemu/ 路徑下生成該虛擬機器的 xml 配置檔案,很多時候,我們會以此 xml 配置為模板,進行修改後來建立新的虛擬機器,這樣,就需要我們瞭解該配置檔案中各個欄位的意思,下面,就對該檔案做一說明: <!-- WARNING:&n

    Mybatis配置檔案

    ##1、properties (1)、可以使用標籤來引入外部properties配置檔案的內容,一般用於引入資料來源: a)、resource:引入類路徑下的資源 b)、url:引入網路路徑或者磁碟路徑

    maven安裝和eclipse整合以及Maven之setting.xml配置檔案

    由於maven需要JDK的支援,所以在安裝maven之前請確保電腦上已經安裝了JDK,且配置好了環境變數,具體的JDK的安裝及配置可自行百度。下面進入安裝 一、maven安裝 前面已經下載了相應版本的maven,且已經配置好JDK的環境;     1

    SSH框架之Struts的struts.xml配置檔案

    struts.xml配置檔案詳解 方式一:只使用一個struts.xml配置檔案 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-/

    轉:AndroidManifest.xml配置檔案

    AndroidManifest.xml配置檔案對於Android應用開發來說是非常重要的基礎知識,本文旨在總結該配置檔案中重點的用法,以便日後查閱。下面是一個標準的AndroidManifest.xml檔案樣例。 <?xml version="1.0" encoding="utf-8"?> &

    AndroidManifest.xml配置檔案-…

    AndroidManifest.xml配置檔案對於Android應用開發來說是非常重要的基礎知識,本文旨在總結該配置檔案中重點的用法,以便日後查閱。下面是一個標準的AndroidManifes