1. 程式人生 > >SqlMapConfig配置加註解

SqlMapConfig配置加註解

<?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>

	<!-- 全域性引數 -->
	<settings>
		<!-- 使全域性的對映器啟用或禁用快取。 -->
		<setting name="cacheEnabled" value="true" />

		<!-- 全域性啟用或禁用延遲載入。當禁用時,所有關聯物件都會即時載入。 -->
		<setting name="lazyLoadingEnabled" value="true" />

		<!-- 當啟用時,有延遲載入屬性的物件在被呼叫時將會完全載入任意屬性。否則,每種屬性將會按需要載入。 -->
		<setting name="aggressiveLazyLoading" value="true" />

		<!-- 是否允許單條sql 返回多個數據集 (取決於驅動的相容性) default:true -->
		<setting name="multipleResultSetsEnabled" value="true" />

		<!-- 是否可以使用列的別名 (取決於驅動的相容性) default:true -->
		<setting name="useColumnLabel" value="true" />

		<!-- 允許JDBC 生成主鍵。需要驅動器支援。如果設為了true,這個設定將強制使用被生成的主鍵,有一些驅動器不相容不過仍然可以執行。 default:false -->
		<setting name="useGeneratedKeys" value="false" />

		<!-- 指定 MyBatis 如何自動對映 資料基表的列 NONE:不隱射 PARTIAL:部分 FULL:全部 -->
		<setting name="autoMappingBehavior" value="PARTIAL" />

		<!-- 這是預設的執行型別 (SIMPLE: 簡單; REUSE: 執行器可能重複使用prepared statements語句;BATCH: 
			執行器可以重複執行語句和批量更新) -->
		<setting name="defaultExecutorType" value="SIMPLE" />

		<!-- 使用駝峰命名法轉換欄位。 -->
		<setting name="mapUnderscoreToCamelCase" value="true" />

		<!-- 設定本地快取範圍 session:就會有資料的共享 statement:語句範圍 (這樣就不會有資料的共享 ) defalut:session -->
		<setting name="localCacheScope" value="SESSION" />

		<!-- 設定但JDBC型別為空時,某些驅動程式 要指定值,default:OTHER,插入空值時不需要指定型別 -->
		<setting name="jdbcTypeForNull" value="NULL" />

		<!-- 設定欄位值為空時,將以null值對映到map -->
		<setting name="callSettersOnNulls" value="true" />
	</settings>

	<!-- 類型別名 -->
	<typeAliases>
		<!--<typeAlias alias="Page" type="com.minstone.common.persistence.Page" />分頁 -->
	</typeAliases>

	<!-- 外掛配置 -->
	<!-- plugins在配置檔案中的位置必須符合要求,否則會報錯,順序如下:
	 properties?, settings?, typeAliases?, 
	 typeHandlers?, objectFactory?,objectWrapperFactory?,
	 plugins?, environments?, 
	 databaseIdProvider?, mappers? -->
	<plugins>
		<!-- com.github.pagehelper為PageHelper類所在包名 -->
		<plugin interceptor="com.github.pagehelper.PageHelper">
			<!-- 4.0.0以後版本可以不設定該引數 
			<property name="dialect" value="mysql" />-->
			<!-- 該引數預設為false -->
			<!-- 設定為true時,會將RowBounds第一個引數offset當成pageNum頁碼使用 -->
			<!-- 和startPage中的pageNum效果一樣 -->
			<property name="offsetAsPageNum" value="true" />
			<!-- 該引數預設為false -->
			<!-- 設定為true時,使用RowBounds分頁會進行count查詢 -->
			<property name="rowBoundsWithCount" value="true" />
			<!-- 設定為true時,如果pageSize=0或者RowBounds.limit = 0就會查詢出全部的結果 -->
			<!-- (相當於沒有執行分頁查詢,但是返回結果仍然是Page型別) -->
			<property name="pageSizeZero" value="true" />
			<!-- 3.3.0版本可用 - 分頁引數合理化,預設false禁用 -->
			<!-- 啟用合理化時,如果pageNum<1會查詢第一頁,如果pageNum>pages會查詢最後一頁 -->
			<!-- 禁用合理化時,如果pageNum<1或pageNum>pages會返回空資料 -->
			<property name="reasonable" value="false" />
			<!-- 3.5.0版本可用 - 為了支援startPage(Object params)方法 -->
			<!-- 增加了一個`params`引數來配置引數對映,用於從Map或ServletRequest中取值 -->
			<!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,orderBy,不配置對映的用預設值 -->
			<!-- 不理解該含義的前提下,不要隨便複製該配置 -->
			<property name="params"
				value="pageNum=pageHelperStart;pageSize=pageHelperRows;" />
			<!-- 支援通過Mapper介面引數來傳遞分頁引數 -->
			<property name="supportMethodsArguments" value="false" />
			<!-- always總是返回PageInfo型別,check檢查返回型別是否為PageInfo,none返回Page -->
			<property name="returnPageInfo" value="none" />
		</plugin>
	</plugins>



</configuration>