1、configuration.xml檔案常用代碼 [html] view plain copy print?
- <?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>
<?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的全局運作方式,如果對這些屬性的含義不熟悉的話建議不要配置,使用預設值即可。下面這個表格描述了各個配置項的含義和預設值:
- <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>
<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>标簽中的屬性就可以不用寫實體的具體路徑直接用别名就可以了
- <select resultType="com.sjh.entity.VoteUser"> <!-- 沒有别名 -->
- <select resultType="VoteUsers"> <!-- 有别名 -->
- <pre><typeAliases>
- <typeAlias alias="Author" type="admin.common.Author"/>
- </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”被使用。
如果很多屬性涉及到實體類,直接寫别名很友善的。你說你删了程式照樣跑,寫配置的時候你一定是沒有應用到别名,都寫得實體路徑。