视频地址:http://edu.51cto.com/sd/be679

首先我们要知道一点,该配置文件的中属性的存放是有顺序的,没有办法随意的乱放。如果你属性的配置位置出错,会有如下错误提示:

The content of element type "configuration" must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)".

这个错误的大概意思是说,在configuration里面的属性存放必须按照红体字那些顺序存放。

  接下来我们按照顺序来看一下这些配置属性到底是什么意思:

    1.properties属性:加载属性的配置文件

    比如:这个数据源信息,应该是放在一个db.properties里面然后在在数据源里引用的。

<properties resource="db.properties"></properties>//把db.properties的文件引用进来
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <!-- 配置数据库连接信息 -->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}" />
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${jdbc.password}" />
            </dataSource>
        </environment>
    </environments>

    2.第二个配置信息<settings>

      Mybatis在运行的时候可以调整的一些参数

      比如:是否开启缓存,延迟加载就是在setting中配置,这里把延迟加载和开启二级缓存的配置贴在下面    

    <!-- 开启延迟加载 -->
    <settings>
        <!-- lazyLoadingEnabled:延迟加载启动,默认是false -->
        <setting name="lazyLoadingEnabled" value="true"/>
        <!-- aggressiveLazyLoading:积极的懒加载,false的话按需加载,默认是true -->
        <setting name="aggressiveLazyLoading" value="false"/>
        <!-- 开启二级缓存,默认是false -->
        <setting name="cacheEnabled" value="true"/>
    </settings>

 

      这个全局的参数别随便乱配,因为它会影响Mybatis的运行

    3.typeAliases 别名(这个属性用的非常平繁)

       默认支持的别名类型:我们在用parameterType指定输入参数类型的时候需要写全称,但是比如:java.lang.Integer也可以写int就是因为这个默认支             持的别名型大概支持的默认类型如下(没有全部列出来)

  

      自定义别名:

        对单个的定义:

<typeAliases>
<!-- 
    type:就是你要为那个类去别名的路径:包名+类型
  alias:就是你自己取的别名
--> <typeAlias type="com.etc.entity.Student" alias="student"/> </typeAliases>

        引用别名:本来该写 com.etc.entity.Student现在只要写alias里的名字就好

        批量定义别名:

<!-- 
    Mybatis批量定义别名:通过指定包名来定义
    就是内部去定义这个取别名的规则:
    规则:Mybatis会自动去扫描这个包底下的类,并且Mybatis自定义别名,别名就是类名(首字母大小写都可以)
 -->
<package name="com.etc.entity"/>

  注意:扫描包,Mybatis自定义别名,别名就是类型首字母的大小写都可以

    typeHanlders:类型处理器

      Mybatis中是通过typeHanlders完成java类型和数据库类型的转换,Mybatis内部定义的类型已经足够我们去使用,就不需要自己在去定义。

    environments:运行环境(数据源等等)

    Mappers:关联配置文件(就是mybatis写在xml中的数据库操作,需要告诉这个全局配置文件),主要有一下三种方式

      单个文件:   

<mappers>
    <mapper resource="mapper/StudentMapper.xml"/>
</mappers>

      类加载:

<!-- 
        通过类去加载该类的配置文件
        规则:mapper接口和mapper.xml映射文件的名称必须一致
           :在同一个目录
     -->
    <mapper class="com.etc.mapper.StudentMapper"/>

      批量加载:

 

 

<!--批量加载:也是扫描这个包底下的所有东西 仍然要遵守类加载的原则 -->
    <package name="com.etc.mapper"/>

 

以上就是这些就是配置文件的详细解析。