Mybatis-config.xml配置文件詳解


1.官方給出的案列:

注意:這些配置在文件中的順序非常重要!必須嚴格按照上圖中出現的順序定義

2.properties屬性

該屬性主要作用就是引入外部的properties是文件,文件格式為xxx=xxx

實例:

<!-- 加載外部配置文件 -->
<properties resource="jdbc.properties"></properties>

3.settings屬性

調整 settings 中的設置是非常關鍵的,它們會改變 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)

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 類型,多數情況直接用一般類型即可,比如 NULLVARCHAR 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 的時候是否調用映射對象的 settermap 對象時為 put)方法,這對於有 Map.keySet() 依賴或 null 值初始化的時候是有用的。注意原始類型(intboolean等)是不能設置成 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 用來創建具有延遲加載能力的對象設置代理工具。

 

 

4.typeAliases別名

類型別名是為 Java 類型命名的一個短的名字。它只和 XML 配置有關,存在的意義僅在於用來減少類完全限定名的冗余。

<!-- 起別名 -->
<typeAliases>
<typeAlias alias="User" type="cn.mybatis.pojo.User"/>
</typeAliases>

Mybatis中已經定義好的別名:

5.mapper映射器

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

6.plugins插件

MyBatis中的插件,其實類似於攔截器的效果,可以實現在MyBatis的整個運行流程中的 某些指定位置進行攔截:

 

Executor:對執行器進行攔截,上圖括號內是可以攔截的方法

ParameterHandler:參數處理時進行攔截

ResultSetHandler:處理結果集,封裝Java對象時進行攔截

StatementHandler:編譯statement時進行攔截

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM