天天看点

个人常用配置文件解析

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”被使用。

如果很多属性涉及到实体类,直接写别名很方便的。你说你删了程序照样跑,写配置的时候你一定是没有应用到别名,都写得实体路径。

继续阅读