Java的MyBatis框架中症結的XML字段映照的設置裝備擺設參數詳解。本站提示廣大學習愛好者:(Java的MyBatis框架中症結的XML字段映照的設置裝備擺設參數詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是Java的MyBatis框架中症結的XML字段映照的設置裝備擺設參數詳解正文
properties
這些是內部化的,可替換的屬性,這些屬性也能夠設置裝備擺設在典范的Java屬性設置裝備擺設文件中,或許經由過程properties元素的子元從來傳遞。例如:
<properties resource="org/mybatis/example/config.properties"> <property name="username" value="dev_user"/> <property name="password" value="F2Fa3!33TYyg"/> </properties>
個中的屬性便可以在全部設置裝備擺設文件中應用,應用可調換的屬性來完成靜態設置裝備擺設。好比:
<dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource>
這個例子中的username和password將會由properties元素中設置的值來調換。driver和url屬性將會從包括出去的config.properties文件中的值來調換。
Settings
1.cacheEnabled
這個設置裝備擺設使全局的映照器啟用或禁用緩存。
有用值:true,false
默許值:true
2.lazyLoadingEnabled
全局啟用或禁用延遲加載。當禁用時,一切聯系關系對象都邑即時加載。
有用值:true,false
默許值:true
3.aggressiveLazyLoading
當啟用時,有延遲加載屬性的對象在被挪用時將會完整加載隨意率性屬性。不然,
每種屬性將會按須要加載。
有用值:true,false
默許值:true
4.mult ipleResultSetsEnabled
許可或不許可多種成果集從一個零丁的語句中前往(須要合適的驅動)
有用值:true,false
默許值:true
5.useColumnLabel
應用列標簽取代列名。分歧的驅動在這便利表示分歧。參考驅動文檔或充足測
試兩種辦法來決議所應用的驅動。
有用值:true,false
默許值:true
6.useGeneratedKeys
許可JDBC支撐生成的鍵。須要合適的驅動。假如設置為true則這個設置強迫
生成的鍵被應用,雖然一些驅動謝絕兼容但依然有用(好比 Derby)
有用值:true,false
默許值:false
7.autoMappingBehavior
指定MyBatis若何主動映照列到字段/屬性。PARTIAL只會主動映照簡略,沒有嵌套的成果。
FULL會主動映照隨意率性龐雜的成果(嵌套的或其他情形)
有用值:NONE,PARTIAL,FULL
默許值:PARTIAL
8.defaultExecutorType
設置裝備擺設默許的履行器。SIMPLE 履行器沒有甚麼特殊的地方。REUSE履行重視用預處置語句。
BATCH 履行重視用語句和批量更新
有用值:SIMPLE,REUSE,BATCH
默許值:SIMPLE
9.defaultStatementTimeout
設置超不時間,它決議驅動期待一個數據庫呼應的時光。
有用值:Any,positive,integer
默許值:Not Set(null)
一個設相信息元素的示例,完整的設置裝備擺設以下所示:
<settings> <setting name="cacheEnabled" value="true"/> <setting name="lazyLoadingEnabled" value="true"/> <setting name="multipleResultSetsEnabled" value="true"/> <setting name="useColumnLabel" value="true"/> <setting name="useGeneratedKeys" value="false"/> <setting name="enhancementEnabled" value="false"/> <setting name="defaultExecutorType" value="SIMPLE"/> <setting name="defaultStatementTimeout" value="25000"/> </settings>
typeAliases
類型別號是為Java類型定名一個短的名字。它只和XML設置裝備擺設有關,只用來削減類完整限制名的過剩部門。例如:
<typeAliases> <typeAlias alias="Author" type="domain.blog.Author"/> <typeAlias alias="Blog" type="domain.blog.Blog"/> <typeAlias alias="Comment" type="domain.blog.Comment"/> <typeAlias alias="Post" type="domain.blog.Post"/> <typeAlias alias="Section" type="domain.blog.Section"/> <typeAlias alias="Tag" type="domain.blog.Tag"/> </typeAliases>
應用這個設置裝備擺設,“Blog”可以隨意率性用來替換“domain.blog.Blog”所應用的處所。 關於通俗的 Java 類型,有很多內建的類型別號。它們都是年夜小寫不敏感的,因為重載的名字,要留意原生類型的特別處置。
typeHandlers
不管是MyBatis在預處置語句中設置一個參數,照樣從成果集中掏出一個值時,類型處置器被用來將獲得的值以適合的方法轉換成Java類型。上面這個表格描寫了默許的類型處置器。
你可以重寫類型處置器或創立你本身的類型處置器來處置不支撐的或非尺度的類型。但這類情形相當少!!
objectFactory
MyBatis每次創立成果對象新的實例時,它應用一個ObjectFactory實例來完成。假如參數映照存在,默許的ObjectFactory不比應用默許結構辦法或帶參數的結構辦法實例化目的類做的任務多。假如你想重寫默許的ObjectFactory,你可以創立你本身的。實例略。
plugins
MyBatis許可你在某一點攔阻已映照語句履行的挪用。默許情形下,MyBatis許可應用插件來攔阻辦法挪用:
1.Executor
(update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)
2.ParameterHandler
(getParameterObject, setParameters)
3.ResultSetHandler
(handleResultSets, handleOutputParameters)
4.StatementHandler
(prepare, parameterize, batch, update, query)
environments
MyBatis可以設置裝備擺設多種情況。這會贊助你將SQL映照運用於多種數據庫當中。
一個很主要的成績要記得:你可以設置裝備擺設多種情況,但你只能為每一個SqlSessionFactory實例選擇一個。所以,假如你想銜接兩個數據庫,你須要創立兩個SqlSessionFactory實例,每一個數據庫對應一個。而假如是三個數據庫,你就須要三個實例,以此類推。
情況元素界說了若何設置裝備擺設情況,如例:
<environments default="development"> <environment id="development"> <transactionManager type="JDBC"> <property name="..." value="..."/> </transactionManager> <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>
留意這裡:
1.默許的情況 ID(好比:default=”development”)。
2.每一個 environment 元素界說的情況 ID(好比:id=”development”)。
3.事務治理器的設置裝備擺設(好比:type=”JDBC”)。
4.數據源的設置裝備擺設(好比:type=”POOLED”)。
transactionManager
在MyBatis中有兩種事務治理器類型(也就是type="[JDBC|MANAGED]"。
1.JDBC---這個設置裝備擺設直接簡略應用了JDBC的提交和回滾設置。它依附於從數據源獲得的銜接來治理事務規模。
2.MANAGED---這個設置裝備擺設簡直沒做甚麼。它歷來不提交或回滾一個銜接。而它會讓容器來治理事務的全部性命周期(好比Spring或JEE運用辦事器的高低文)。默許情形下它會封閉銜接。但是一些容器其實不願望如許,是以假如你須要從銜接中停滯它,將closeConnection屬性設置為false。例如:
<transactionManager type="MANAGED"> <property name="closeConnection" value="false"/> </transactionManager>
這兩種事務治理器都不須要任何屬性。但是它們都是類型別號,要調換它們,你須要放置你本身的類的完整限制名或類型別號,它們援用了你對TransacFactory接口的完成類。