MyBatis配置文件myBatis-config.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 >
<!--properties元素主要是用來定義配置外在化,好比數據庫的鏈接屬性等。
這些屬性都是可外部配置且可動態替換的,既能夠在典型的Java屬性文件中配置,亦能夠經過properties元素的子元素來傳遞。
所以,經過方法參數傳遞的屬性具備最高優先級,resource/url屬性中指定的配置文件次之,最低優先級的是properties屬性中指定的屬性。-->
<properties resource="cn.bdqn.li.bean.User"/>
<!--setting是指定MyBatis的一些全局配置屬性,這是MyBatis中極爲重要的調整設置,它們會改變MyBatis的運行時行爲,-->
<!--因此咱們須要清楚的知道這些屬性的做用及默認值。-->
<settings>
<!--logImpl 指定 MyBatis 所用日誌的具體實現,未指定時將自動查找。-->
<setting name="logImpl" value="LOG4J"/>
</settings>
                                    setting參數
設置參數 描述 有效值 默認值
cacheEnabled 該配置影響的全部映射器中配置的緩存的全局開關。 true | false true
lazyLoadingEnabled 延遲加載的全局開關。當開啓時,全部關聯對象都會延遲加載。 特定關聯關係中可經過設置fetchType屬性來覆蓋該項的開關狀態。 true | false false
aggressiveLazyLoading 當開啓時,任何方法的調用都會加載該對象的全部屬性。不然,每一個屬性會按需加載(參考lazyLoadTriggerMethods). true | false false (true in ≤3.4.1)
multipleResultSetsEnabled 是否容許單一語句返回多結果集(須要兼容驅動)。 true | false true
useColumnLabel 使用列標籤代替列名。不一樣的驅動在這方面會有不一樣的表現, 具體可參考相關驅動文檔或經過測試這兩種不一樣的模式來觀察所用驅動的結果。 true | false true
useGeneratedKeys 容許 JDBC 支持自動生成主鍵,須要驅動兼容。 若是設置爲 true 則這個設置強制使用自動生成主鍵,儘管一些驅動不能兼容但仍可正常工做(好比 Derby)。 true | false False
autoMappingBehavior 指定 MyBatis 應如何自動映射列到字段或屬性。 NONE 表示取消自動映射;PARTIAL 只會自動映射沒有定義嵌套結果集映射的結果集。 FULL 會自動映射任意複雜的結果集(不管是否嵌套)。 NONE, PARTIAL, FULL PARTIAL
autoMappingUnknownColumnBehavior 指定發現自動映射目標未知列(或者未知屬性類型)的行爲。
  • NONE: 不作任何反應
  • WARNING: 輸出提醒日誌 ('org.apache.ibatis.session.AutoMappingUnknownColumnBehavior'的日誌等級必須設置爲 WARN)
  • FAILING: 映射失敗 (拋出 SqlSessionException)
NONE, WARNING, FAILING NONE
defaultExecutorType 配置默認的執行器。SIMPLE 就是普通的執行器;REUSE 執行器會重用預處理語句(prepared statements); BATCH 執行器將重用語句並執行批量更新。 SIMPLE REUSE BATCH SIMPLE
defaultStatementTimeout 設置超時時間,它決定驅動等待數據庫響應的秒數。 任意正整數 Not Set (null)
defaultFetchSize 爲驅動的結果集獲取數量(fetchSize)設置一個提示值。此參數只能夠在查詢設置中被覆蓋。 任意正整數 Not Set (null)
safeRowBoundsEnabled 容許在嵌套語句中使用分頁(RowBounds)。若是容許使用則設置爲false。 true | false False
safeResultHandlerEnabled 容許在嵌套語句中使用分頁(ResultHandler)。若是容許使用則設置爲false。 true | false True
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.XMLLanguageDriver
defaultEnumTypeHandler Specifies the TypeHandler used by default for Enum. (Since: 3.4.5) A type alias or fully qualified class name. org.apache.ibatis.type.EnumTypeHandler
callSettersOnNulls 指定當結果集中值爲 null 的時候是否調用映射對象的 setter(map 對象時爲 put)方法,這對於有 Map.keySet() 依賴或 null 值初始化的時候是有用的。注意基本類型(int、boolean等)是不能設置成 null 的。 true | false false
returnInstanceForEmptyRow 當返回行的全部列都是空時,MyBatis默認返回null。 當開啓這個設置時,MyBatis會返回一個空實例。 請注意,它也適用於嵌套的結果集 (i.e. collectioin and association)。(從3.4.2開始) 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)
vfsImpl 指定VFS的實現 自定義VFS的實現的類全限定名,以逗號分隔。 Not set
useActualParamName 容許使用方法簽名中的名稱做爲語句參數名稱。 爲了使用該特性,你的工程必須採用Java 8編譯,而且加上-parameters選項。(從3.4.1開始) true | false true
configurationFactory 指定一個提供Configuration實例的類. 這個被返回的Configuration實例是用來加載被反序列化對象的懶加載屬性值. 這個類必須包含一個簽名方法static Configuration getConfiguration(). (從 3.2.3 版本開始) 類型別名或者全類名. Not set
    <!--類型別名是爲Java類型設置一個短的名字。它只和xml配置有關,存在的意義僅在於用來減小類徹底限定名的冗餘-->    <typeAliases>        <typeAlias type="cn.bdqn.li.bean.User" alias="User"/>    </typeAliases>    <!--設置mybatis運行環境 default默認運行環境是environment節點中的id  -->    <environments default="development">        <environment id="development">            <!--事務管理器的配置 兩種類型的事務管理器(也就是 type="[JDBC|MANAGED]")                JDBC具備提交和回滾功能                MANAGED是讓容器來管理事務的整個生命週期。默認狀況下它會關閉鏈接                    (通常狀況下須要將closeConnection屬性設置爲false來阻止它默認的行爲)。               Spring+mybatis則不須要配置事務管理器。由於spring模塊會使用自帶的管理器來覆蓋前面的配置。-->            <transactionManager type="JDBC"></transactionManager>            <!--配置數據源 POOLED:mybatis自帶的數據源  JNDI:tomcat中的數據源                有三種內建的數據源類型(也就是 type="[]UNPOOLED|POOLED|JNDI]");                    UNPOOLED :這個數據源的實現只是被請求時打開和關閉鏈接。雖然有一點慢,它對在及時可用鏈接方面沒有性能要求的簡單應用是一個很好的選擇;                    POOLED: 這種數據源的實現利用「池」的概念將JDBC鏈接對象組織起來,避免了建立新的鏈接實例時所必需的初始化和認證時間。這是一種使得併發web應用快速響應請求的流行處理方式。                            poolMaximumActiveConnections: 在任意時間能夠存在的活動(也就是正在使用)鏈接數量,默認值10                            poolMaximumIdleConnections: 任意時間可能存在的空閒鏈接數。                            poolMaximumCheckoutTime: 在被強制返回以前,池中鏈接被檢出(checked out)時間,默認值:20000毫秒(即20秒)                            poolTimeToWait: 這是一個底層設置,若是獲取鏈接花費的至關長的時間,它會給鏈接池打印狀態日誌並從新嘗試獲取一個鏈接(避免在誤配置的狀況下一直安靜的失敗),默認值20000毫秒(即20秒)。                            poolPingQuery: 發送到數據庫的偵測查詢,用來檢驗鏈接是否處在正常的工做秩序中,而且準備接受請求。默認是"NOT PING QUERY SET",這會致使多數數據庫鏈接失敗時帶有一個恰當的錯誤信息。                            poolPingEnabled: 是否啓用偵測。若開啓,也必須使用一個可執行的SQL語句設置poolPingQuery屬性(最好是一個很是快的SQL),默認值:false。                            poolPingConnectionsNotUsedFor: 配置poolPingQuery使用的頻度。這能夠被設置成匹配具體的數據庫鏈接超時時間,來避免沒必要要的偵測,默認值:0(即全部鏈接每一時刻都被偵測 ,固然僅當 poolPingEnabled爲true時適用)。                    JNDI: 這個數據源的實現是爲了能在如EJB或應用服務器這類容器中使用,容器能夠集中或在外部配置數據源,而後放置一個JNDI上下文的引用。-->            <dataSource type="POOLED">                <property name="driver" value="${driver}"/>                <property name="url" value="${url}"/>                <property name="username" value="${username}"/>                <property name="password" value="${password}"/>            </dataSource>        </environment>    </environments>    <mappers><!--管理咱們設置的映射文件 ,SQL映射語句文件,能夠是多個               第一種(經常使用): resource指向的是相對於類路徑下的目錄               第二種:使用徹底限定路徑,如:<mapper url="file:///D:\workspace\mybatis1\config\sqlmap\User.xml" />               使用mapper接口類路徑,如:<mapper class="cn.kang.mapper.UserMapper"/>-->        <mapper resource="cn/bdqn/li/dao/UserMapper.xml"/>    </mappers></configuration>
相關文章
相關標籤/搜索