properties
這些是外部化的, 可替代的屬性, 這些屬性也可以配置在典型的 Java 屬性配置文件中, 或者通過(guò) properties 元素的子元素來(lái)傳遞踢代。例如:
<properties resource="org/mybatis/example/config.properties">
<property name="username" value="dev_user"/>
<property name="password" value="F2Fa3!33TYyg"/>
</properties>
其中的屬性就可以在整個(gè)配置文件中使用,使用可替換的屬性來(lái)實(shí)現(xiàn)動(dòng)態(tài)配置锯蛀。比如:
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
這個(gè)例子中的 username 和 password 將會(huì)由 properties 元素中設(shè)置的值來(lái)替換。 driver 和 url 屬性將會(huì)從包含進(jìn)來(lái)的 config.properties 文件中的值來(lái)替換。這里提供很多配置的選項(xiàng)照藻。
<properties resource="jdbc.properties">
<property name="jdbc.user" value="scott"/>
<property name="jdbc.password" value="rootroot"/>
</properties>
jdbc.properties
jdbc.user=scott
jdbc.password=rootroot
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
settings
這些是極其重要的調(diào)整, 它們會(huì)修改 MyBatis 在運(yùn)行時(shí)的行為方式饺鹃。 下面這個(gè)表格描述 了設(shè)置信息,它們的含義和默認(rèn)值。
<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="autoMappingBehavior" value="PARTIAL"/>
<setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
<setting name="defaultExecutorType" value="SIMPLE"/>
<setting name="defaultStatementTimeout" value="25"/>
<setting name="defaultFetchSize" value="100"/>
<setting name="safeRowBoundsEnabled" value="false"/>
<setting name="mapUnderscoreToCamelCase" value="false"/>
<setting name="localCacheScope" value="SESSION"/>
<setting name="jdbcTypeForNull" value="OTHER"/>
<setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>
類型別名(typeAliases)
類型別名是為 Java 類型設(shè)置一個(gè)短的名字条霜。 它只和 XML 配置有關(guān)催什,存在的意義僅在于用來(lái)減少類完全限定名的冗余。例如:
<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>
也可以指定一個(gè)包名宰睡,MyBatis 會(huì)在包名下面搜索需要的 Java Bean蒲凶,比如:
org.lq.entity.Emp
<typeAliases>
<package name="org.lq.entity"/>
</typeAliases>
使用
<resultMap type="Emp" id="base_emp">