天天看點

個人常用配置檔案解析

1、configuration.xml檔案常用代碼 [html] view plain copy print?

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL MAP Config 3.1//EN"   
  3. "http://mybatis.org/dtd/mybatis-3-config.dtd">  
  4. <configuration>  
  5.     <settings>  
  6.         <setting name="logImpl" value="LOG4J" />  
  7.         <setting name="callSettersOnNulls" value="true" />  
  8.         <setting name="mapUnderscoreToCamelCase" value="true" />  
  9.     </settings>  
  10.     <typeAliases>  
  11.         <package name="com.hxqc.accessory.app.model" />  
  12.         <package name="com.hxqc.accessory.wep.model" />  
  13.     </typeAliases>  
  14. </configuration>  
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL MAP Config 3.1//EN" 
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<settings>
		<setting name="logImpl" value="LOG4J" />
		<setting name="callSettersOnNulls" value="true" />
		<setting name="mapUnderscoreToCamelCase" value="true" />
	</settings>
	<typeAliases>
		<package name="com.hxqc.accessory.app.model" />
		<package name="com.hxqc.accessory.wep.model" />
	</typeAliases>
</configuration>      

<settings>設定相關:setting節點裡配置的值會直接改寫Configuration對應的變量值,這些變量描述的是Mybatis的全局運作方式,如果對這些屬性的含義不熟悉的話建議不要配置,使用預設值即可。下面這個表格描述了各個配置項的含義和預設值:

  1. <settings>     
  2. <setting name="cacheEnabled" value="true"/>     
  3. <setting name="lazyLoadingEnabled" value="true"/>     
  4. <setting name="multipleResultSetsEnabled" value="true"/>     
  5. <setting name="useColumnLabel" value="true"/>     
  6. <setting name="useGeneratedKeys" value="false"/>     
  7. <setting name="enhancementEnabled" value="false"/>     
  8. <setting name="defaultExecutorType" value="SIMPLE"/>     
  9. <setting name="defaultStatementTimeout" value="25000"/>     
  10. </settings>   
<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>       
設定參數 描述 有效值 預設值
cacheEnabled 這個配置使全局的映射器啟用或禁用緩存 true | false true
lazyLoadingEnabled 全局啟用或禁用延遲加載。當禁用時,所有關聯對象都會即時加載。
aggressiveLazyLoading 當啟用時,有延遲加載屬性的對象在被調用時将會完全加載任意屬性。否則,每種屬性将會按需要加載。
multipleResultSetsEnabled 允許或不允許多種結果集從一個單獨的語句中傳回(需要适合的驅動)。
useColumnLabel 使用列标簽代替列名。不同的驅動在這友善表現不同。參考驅動文檔或充分測試兩種方法來決定所使用的驅動。
useGeneratedKeys 允許JDBC支援生成的鍵。需要适合的驅動。如果設定為true則這個設定強制生成的鍵被使用,盡管一些驅動拒絕相容但仍然有效(比如Derby)。 false
autoMappingBehavior 指定MyBatis如何自動映射列到字段/屬性。PARTIAL隻會自動映射簡單,沒有嵌套的結果。FULL會自動映射任意複雜的結果(嵌套的或其他情況)。

none,

partial,

full

partial

<typeAliases>設定相關:typeAliases标簽 是寫實體類的别名。

寫了之後可以在寫Sql配置檔案例如<select>标簽中的屬性就可以不用寫實體的具體路徑直接用别名就可以了

  1. <select resultType="com.sjh.entity.VoteUser"> <!-- 沒有别名  -->  
  2. <select resultType="VoteUsers"> <!-- 有别名  -->  
  3. <pre><typeAliases>  
  4.     <typeAlias alias="Author" type="admin.common.Author"/>  
  5. </typeAliases>  
<select resultType="com.sjh.entity.VoteUser"> <!-- 沒有别名  -->
<select resultType="VoteUsers"> <!-- 有别名  -->

<pre><typeAliases>

<typeAlias alias="Author" type="admin.common.Author"/>

</typeAliases>
      

直接寫别名就可以不用再寫實體的路徑了,VoteUsers就能在任何地方代替“com.sjh.entity.VoteUser”被使用。

如果很多屬性涉及到實體類,直接寫别名很友善的。你說你删了程式照樣跑,寫配置的時候你一定是沒有應用到别名,都寫得實體路徑。

繼續閱讀